{"version":3,"file":"static/chunks/pages/detail/[...slug]-22088cd7f6871ab4.js","mappings":"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","sources":["webpack://_N_E/?5c8c","webpack://_N_E/./components/common/ActivityIcon.tsx","webpack://_N_E/./models/tour.ts","webpack://_N_E/./utils/queries/hooks/useRelatedTours.ts","webpack://_N_E/./utils/hooks/useSticky.ts","webpack://_N_E/./components/detail/InterestedIn.tsx","webpack://_N_E/./components/detail/tags/TagsPackageType.tsx","webpack://_N_E/./public/custom-icons/detail-custom/ticket.svg","webpack://_N_E/./public/custom-icons/detail-custom/geotag.svg","webpack://_N_E/./public/custom-icons/detail-custom/keys.svg","webpack://_N_E/./public/custom-icons/detail-custom/english-flag.svg","webpack://_N_E/./public/custom-icons/detail-custom/spanish-flag.svg","webpack://_N_E/./public/custom-icons/detail-custom/french-flag.svg","webpack://_N_E/./public/custom-icons/detail-custom/italian-flag.svg","webpack://_N_E/./public/custom-icons/detail-custom/pointer.svg","webpack://_N_E/./utils/svg-icon/detailPackageCustom.ts","webpack://_N_E/./components/detail/HeadBox.tsx","webpack://_N_E/./components/detail/PackageDetailHead.tsx","webpack://_N_E/./public/images/adventures_box.png","webpack://_N_E/./public/images/discover_box.png","webpack://_N_E/./public/images/expert_box.png","webpack://_N_E/./components/detail/WhyChoosePlay.tsx","webpack://_N_E/./components/detail/PackageDetailNavbarItem.tsx","webpack://_N_E/./components/detail/PackageDetailNavbar.tsx","webpack://_N_E/./components/detail/PackageDetailRecap.tsx","webpack://_N_E/./components/detail/DetailFixedBarMobile.tsx","webpack://_N_E/./components/detail/addToCart/modal/ModalCartContainer.tsx","webpack://_N_E/./components/common/info/InfoModalDouble.tsx","webpack://_N_E/./components/common/info/InfoModalVideo.tsx","webpack://_N_E/./components/common/info/InfoModalPremium.tsx","webpack://_N_E/./components/detail/DetailBooking/DetailBookingSidebar/DatePickerSectionDetail.tsx","webpack://_N_E/./components/detail/DetailBooking/DetailBookingSidebar/ChooseExperienceSectionDetail.tsx","webpack://_N_E/./components/detail/DetailBooking/DetailBookingSidebar/DiscountSectionDetail.tsx","webpack://_N_E/./components/detail/DetailBooking/DetailBookingSidebar/PackageConfigurationSectionDetail.tsx","webpack://_N_E/./components/common/ConvertCurrentCurrency.tsx","webpack://_N_E/./components/detail/PackageDetailAddToCartBoxInfo.tsx","webpack://_N_E/./components/detail/DetailBooking/DetailBookingSidebar/FinalPriceSectionDetail.tsx","webpack://_N_E/./components/detail/DetailBooking/DetailBookingSidebar/ButtonBuySectionDetail.tsx","webpack://_N_E/./components/detail/DetailBooking/DetailBookingSidebar/DetailBookingConfigurator.tsx","webpack://_N_E/./components/detail/DetailBooking/PackageDetailBookingMobile.tsx","webpack://_N_E/./components/detail/DetailBooking/DetailBookingSidebar/Accordion.tsx","webpack://_N_E/./components/detail/DetailBooking/DetailBookingSidebar/AccordionItemActivity.tsx","webpack://_N_E/./components/detail/DetailBooking/DetailBookingSidebar/ActivityIconBody.tsx","webpack://_N_E/./components/detail/DetailBooking/DetailBookingSidebar/Sidebar.tsx","webpack://_N_E/./components/detail/PackageDetailDescriptionCard.tsx","webpack://_N_E/./components/detail/PackageDetailDescriptionCarousel.tsx","webpack://_N_E/./components/detail/PackageDetailDescription.tsx","webpack://_N_E/./components/detail/DetailBooking/DetailBookingSidebar/TravelExperienceSectionDetail.tsx","webpack://_N_E/./components/detail/DetailBooking/PackageDetailBooking.tsx","webpack://_N_E/./components/detail/ModalMap.tsx","webpack://_N_E/./utils/hooks/useForwardRef.ts","webpack://_N_E/./components/detail/TravelExperiencesStepCard.tsx","webpack://_N_E/./components/detail/TravelExperiencesStep.tsx","webpack://_N_E/./components/detail/PackageDetailHotelCard.tsx","webpack://_N_E/./components/detail/PackageDetailHotelGallery.tsx","webpack://_N_E/./components/detail/OvernightAccomodations/OvernightCarousel.tsx","webpack://_N_E/./components/detail/OvernightAccomodations/OvernightAccomodations.tsx","webpack://_N_E/./components/detail/PhotoGallery.tsx","webpack://_N_E/./components/detail/PackageDetailBody.tsx","webpack://_N_E/./pages/detail/[...slug].tsx","webpack://_N_E/./public/custom-icons/icons-2/icons/Coin/Line.svg","webpack://_N_E/./utils/svg-icon/business.ts","webpack://_N_E/./styles/common/ActivityIcon.module.scss","webpack://_N_E/./styles/detail/Detail.ModalMap.module.scss","webpack://_N_E/./styles/detail/Detail.PhotoGallery.module.scss","webpack://_N_E/./styles/detail/Detail.TravelExperiencesStep.module.scss","webpack://_N_E/./styles/detail/Detail.TravelExperiencesStepCard.module.scss","webpack://_N_E/./styles/detail/Detail.WhyChoosePlay.module.scss","webpack://_N_E/./styles/detail/DetailAccomodations.module.scss","webpack://_N_E/./styles/detail/DetailBooking.module.scss","webpack://_N_E/./styles/detail/DetailBookingSidebar/AccordionItemActivity.module.scss","webpack://_N_E/./styles/detail/DetailBookingSidebar/ActivityIconBody.module.scss","webpack://_N_E/./styles/detail/DetailBookingSidebar/ChooseExperienceSectionDetail.module.scss","webpack://_N_E/./styles/detail/DetailBookingSidebar/InfoModalPremium.module.scss","webpack://_N_E/./styles/detail/DetailBookingSidebar/PackageConfigurationSectionDetail.module.scss","webpack://_N_E/./styles/detail/DetailBookingSidebar/Sidebar.module.scss","webpack://_N_E/./styles/detail/DetailBookingSidebar/TravelExperienceSectionDetail.module.scss","webpack://_N_E/./styles/detail/DetailDescription.module.scss","webpack://_N_E/./styles/detail/DetailFixedBar.module.scss","webpack://_N_E/./styles/detail/DetailHead.module.scss","webpack://_N_E/./styles/detail/DetailHotelCard.module.scss","webpack://_N_E/./styles/detail/DetailHotelGallery.module.scss","webpack://_N_E/./styles/detail/DetailRecap.module.scss","webpack://_N_E/./styles/search/Search.Card.module.scss","webpack://_N_E/<anon>"],"sourcesContent":["\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/detail/[...slug]\",\n function () {\n return require(\"private-next-pages/detail/[...slug].tsx\");\n }\n ]);\n if(module.hot) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/detail/[...slug]\"])\n });\n }\n ","import Image from \"next/image\";\nimport { FC, useState } from \"react\";\nimport styles from \"../../styles/common/ActivityIcon.module.scss\";\n\nconst ActivityIcon: FC<{\n borderColor: string;\n src: string;\n alt: string;\n className?: string;\n isSmall?: boolean;\n}> = ({ borderColor, src, alt, className = \"\", isSmall = false }) => {\n const [imageError, setImageError] = useState(false);\n return (\n <span\n className={\n isSmall\n ? styles.spanIconContainerSmall\n : styles.spanIconContainerNormal\n }\n style={{\n position: \"relative\",\n border: `2px solid ${imageError ? \"red\" : borderColor}`,\n }}\n >\n <Image\n src={imageError ? \"/images/binoculars.png\" : src}\n width={100}\n height={100}\n style={{\n objectFit: \"contain\",\n position: \"unset\",\n height: \"120%\",\n width: \"110%\",\n }}\n className={className}\n alt={alt}\n onError={() => {\n setImageError(true);\n }}\n />\n </span>\n );\n};\n\nexport default ActivityIcon;\n","import { TourReadableTO, TourResponseTO } from \"@/models/detail\";\n\nexport interface TourGAnalytics {\n item_id: string;\n item_name: string;\n price: string;\n item_brand: string;\n item_category: string;\n item_variant: string;\n}\n\nconst adapterItemGAnalytics = (item: TourReadableTO, variant: string) => ({\n item_id: item.tourId,\n item_name: item.tourTitle,\n item_brand: \"Play Italy\",\n item_category: item.tourType,\n item_variant: variant,\n price: item.price,\n quantity: 1,\n});\n\nconst adapterTourViewItemGAnalytics = (tour: TourResponseTO) => {\n const itemsAdapted: TourGAnalytics[] = [];\n const productQuality = tour?.quality;\n const productPremium = tour?.premium;\n\n if (productQuality) {\n itemsAdapted.push(adapterItemGAnalytics(productQuality, \"quality\"));\n }\n if (productPremium) {\n itemsAdapted.push(adapterItemGAnalytics(productPremium, \"premium\"));\n }\n\n return {\n currency: \"EUR\",\n value: productQuality?.price || productPremium?.price || 0.0,\n items: itemsAdapted,\n };\n};\n\nexport default adapterTourViewItemGAnalytics;\n","import { useQuery } from \"@tanstack/react-query\";\nimport { getRelatedTours } from \"@/utils/queries\";\n\nconst useRelatedToursData = (id: string, isPremium: boolean) => {\n const { data: tours } = useQuery({\n queryKey: [\"relatedTours\", id],\n queryFn: () => getRelatedTours(id),\n });\n\n return isPremium ? tours?.premium : tours?.quality;\n};\n\nexport default useRelatedToursData;\n","import { useEffect, useRef, useState } from \"react\";\n\nconst useSticky = (initialOffset = 0) => {\n const stickyRef = useRef<HTMLDivElement>(null);\n const [sticky, setSticky] = useState(false);\n const [offset, setOffset] = useState(initialOffset);\n\n useEffect(() => {\n if (!stickyRef.current) {\n return;\n }\n setOffset(stickyRef.current.offsetTop);\n }, [stickyRef, setOffset]);\n\n useEffect(() => {\n const handleScroll = () => {\n if (!stickyRef.current) {\n return;\n }\n\n const condition =\n window.scrollY > offset + 150 ||\n (sticky &&\n window.scrollY > offset &&\n window.scrollY <= offset + 150);\n\n setSticky(condition);\n };\n window.addEventListener(\"scroll\", handleScroll);\n return () => window.removeEventListener(\"scroll\", handleScroll);\n }, [setSticky, stickyRef, offset]);\n return { stickyRef, sticky, setOffset };\n};\n\nexport default useSticky;\n","import { MDBContainer } from \"mdb-react-ui-kit\";\nimport { FC } from \"react\";\nimport {\n interestedInSubTitle,\n interestedInTitle,\n} from \"@/utils/mockData/detailMocks\";\nimport { TBreackpointsCarousel } from \"@/models/common/common\";\nimport { ToursEntity } from \"@/models/home\";\nimport SectionCarouselLayout from \"../common/SectionCarouselLayout\";\nimport CardTour from \"../home/cards/cardTour/CardTour\";\n\n/* eslint-disable no-underscore-dangle */\nconst InterestedIn: FC<{ content: ToursEntity[] }> = ({ content }) => {\n const breackPointCarousel: TBreackpointsCarousel = {\n 0: {\n slidesPerView: 1.3,\n height: 533,\n spaceBetween: 12,\n },\n 576: {\n slidesPerView: 2,\n height: 533,\n spaceBetween: 12,\n },\n 768: {\n slidesPerView: 2.5,\n height: 533,\n spaceBetween: 12,\n },\n 992: {\n slidesPerView: 3,\n height: 533,\n spaceBetween: 12,\n },\n 1200: {\n slidesPerView: 3.5,\n height: 533,\n spaceBetween: 32,\n },\n 1400: {\n slidesPerView: 3.5,\n spaceBetween: 32,\n height: 568,\n },\n 1600: {\n slidesPerView: 4.5,\n spaceBetween: 32,\n height: 568,\n },\n 1920: {\n slidesPerView: 5.5,\n spaceBetween: 32,\n height: 568,\n },\n };\n\n return (\n <MDBContainer\n fluid\n className=\"py-5 px-0\"\n style={{ backgroundColor: \"#FCFCFC\" }}\n >\n <SectionCarouselLayout\n visibleSlides={3.5}\n sectionTitle={interestedInTitle}\n sectionSubTitle={interestedInSubTitle}\n breakpointsCarousel={breackPointCarousel}\n isCarouselContained={false}\n >\n {content.map(item => (\n <CardTour\n className=\"mx-2 mx-md-0 m-4\"\n key={item._id}\n content={item}\n />\n ))}\n </SectionCarouselLayout>\n </MDBContainer>\n );\n};\n/* eslint-enable no-underscore-dangle */\n\nexport default InterestedIn;\n","import { FC } from \"react\";\nimport stylesCard from \"@/styles/search/Search.Card.module.scss\";\nimport socialAndBrandSvg from \"@/utils/svg-icon/socialAndBrand\";\nimport userInterfaceSvg from \"@/utils/svg-icon/userInterface\";\n\nconst TagsPackageType: FC<{\n isPremium: boolean;\n}> = ({ isPremium }) => {\n return (\n <div className=\"d-flex justify-content-center\">\n <div\n className={\n isPremium\n ? stylesCard.cardLabelPremium\n : stylesCard.cardLabelQuality\n }\n >\n <div>\n {isPremium ? (\n <socialAndBrandSvg.SketchLine />\n ) : (\n <userInterfaceSvg.StarLine />\n )}\n </div>\n <span style={{ color: \"#000\", textTransform: \"capitalize\" }}>\n {isPremium ? \"ONLY PREMIUM\" : \"ONLY QUALITY\"}\n </span>\n </div>\n </div>\n );\n};\n\nexport default TagsPackageType;\n","var _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgTicket = function SvgTicket(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 42,\n height: 41,\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.726 39.262a.46.46 0 0 1-.647-.189L1.67 25.561a.459.459 0 0 1 .189-.647l3.852-2.1-.78-1.426-3.853 2.1a2.106 2.106 0 0 0-.809 2.853l7.409 13.486a2.073 2.073 0 0 0 1.832 1.077c.35 0 .674-.081.997-.27l3.852-2.1-.781-1.426-3.852 2.154ZM41.407 12.667 30.793 1.577c-.404-.404-.916-.646-1.482-.646h-.027c-.566 0-1.077.215-1.455.592L10.938 18.104 6.573 20.5l.782 1.427L29.5 9.814a.46.46 0 0 1 .646.188l7.409 13.486a.458.458 0 0 1-.189.646l-22.172 12.14.782 1.426 22.172-12.14c1.023-.565 1.373-1.83.835-2.853l-1.67-3.068 4.094-4.011a2.137 2.137 0 0 0 0-2.961Zm-1.158 1.776-3.772 3.715-4.903-8.964c-.566-1.022-1.832-1.372-2.856-.834l-12.58 6.891 12.796-12.57a.512.512 0 0 1 .35-.135c.135 0 .243.054.35.134L40.25 13.77c.188.189.188.512 0 .673ZM7.356 22.081l-1.418.776 1.295 2.361 1.417-.776-1.294-2.36ZM9.403 25.845l-1.418.776 1.424 2.596 1.418-.776-1.424-2.596ZM11.589 29.826l-1.418.776 1.424 2.597 1.418-.776-1.424-2.597ZM13.777 33.787l-1.418.776 1.295 2.361 1.418-.776-1.295-2.36Z\",\n fill: \"#282838\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"m24.543 16.57-.135-.188c-.08-.108-.189-.135-.323-.081l-.216.08c-.485.189-.835.62-.97 1.104l-.916 3.015-6.007 2.288-.35 1.265 5.603-.673-.781 3.903-1.482.996-.162.593 1.886-.27 1.455 1.238.162-.592-.755-1.588 1.455-3.795 4.364 3.607.35-1.212-3.825-5.168.862-3.041c.162-.512.081-1.05-.215-1.481Z\",\n fill: \"#282838\"\n })));\n};\nexport default SvgTicket;","var _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgGeotag = function SvgGeotag(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 32,\n height: 35,\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.298 21.954v8.104c0 .372.313.678.705.678.386 0 .704-.3.704-.678v-8.104c3.119-.076 7.62-.683 7.62-2.568V17.58c0-.871-.927-1.544-2.759-1.997a12.94 12.94 0 0 0-.757-.163V9.218l3.294-2.94a.668.668 0 0 0 .222-.495V3.51C24.322 1.476 19.09.93 15.997.93c-3.092 0-8.324.546-8.324 2.58v2.273c0 .188.08.367.223.494l3.293 2.94v6.198c-.27.051-.524.108-.757.164-1.832.458-2.759 1.131-2.759 1.997v1.805c0 1.89 4.501 2.492 7.625 2.573Zm.7-19.668c4.098 0 6.598.795 6.9 1.203-.345.464-2.839 1.244-6.9 1.244-4.004 0-6.482-.76-6.885-1.223.403-.47 2.881-1.224 6.884-1.224ZM9.081 5.482v-.433c1.768.79 4.83 1.04 6.92 1.04 2.087 0 5.148-.25 6.917-1.04v.433l-3.294 2.94a.66.66 0 0 0-.223.495v6.886c-.333.204-1.514.52-3.4.52-1.884 0-3.07-.316-3.399-.52v-6.88a.66.66 0 0 0-.222-.495l-3.3-2.946Zm1.705 11.406c.233-.06.492-.112.762-.158.948.872 3.538.953 4.454.953.916 0 3.5-.081 4.453-.953.265.051.524.102.757.158 1.414.352 1.684.744 1.706.693l.01 1.749c-.243.458-2.764 1.279-6.926 1.279-4.162 0-6.688-.82-6.916-1.223l-.01-1.748c-.006-.006.227-.378 1.71-.75Z\",\n fill: \"#131313\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.478 15.293c.26 0 .47-.204.47-.453V8.922a.464.464 0 0 0-.47-.453.464.464 0 0 0-.472.453v5.923c0 .25.212.448.472.448ZM18.11 25.231v1.356c7.784.286 12.481 2.12 12.481 3.471 0 1.468-5.55 3.517-14.594 3.517s-14.594-2.05-14.594-3.517c0-1.35 4.703-3.185 12.481-3.47V25.23C6.688 25.501 0 27.143 0 30.058c0 3.196 8.049 4.867 15.997 4.867 7.949 0 15.998-1.671 15.998-4.867.005-2.91-6.683-4.556-13.885-4.827Z\",\n fill: \"#131313\"\n })));\n};\nexport default SvgGeotag;","var _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgKeys = function SvgKeys(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 32,\n height: 33,\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M29.14 3.84A9.807 9.807 0 0 0 22.14.93a9.694 9.694 0 0 0-6.953 2.91c-2.662 2.662-3.451 6.459-2.465 9.812L0 26.372l.542 6.016 6.016.543 1.726-1.775.049-3.65 3.057-.048.345-2.022 2.663-.493.049-2.07 2.17-.05 2.613-2.663a9.363 9.363 0 0 0 2.86.444 9.694 9.694 0 0 0 6.952-2.91c1.873-1.873 2.909-4.338 2.909-6.951.049-2.564-.986-5.079-2.81-6.903Zm-13.017 17.8-2.86.049-.049 2.219-2.514.443-.346 1.923-3.205.05-.049 4.339-.986.986-4.388-.395-.099-1.282L9.22 22.38l-.887-.888-6.903 6.854-.148-1.528 11.932-11.933c.493 1.036 1.134 2.022 1.972 2.86a9.568 9.568 0 0 0 2.86 1.973l-1.923 1.922Zm12.13-4.734c-1.627 1.627-3.797 2.515-6.114 2.515-2.318 0-4.487-.888-6.114-2.515-3.353-3.353-3.353-8.826 0-12.179 1.627-1.627 3.796-2.514 6.114-2.514 2.317 0 4.487.887 6.114 2.514 1.627 1.627 2.514 3.797 2.514 6.114a8.545 8.545 0 0 1-2.514 6.065Z\",\n fill: \"#282838\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M24.9 5.27c-.74 0-1.43.295-1.923.788-1.085 1.085-1.085 2.81 0 3.846a2.722 2.722 0 0 0 1.923.79c.74 0 1.43-.297 1.923-.79a2.722 2.722 0 0 0 .789-1.923c0-.74-.296-1.43-.79-1.923A2.722 2.722 0 0 0 24.9 5.27Zm1.085 3.796c-.592.592-1.578.592-2.12 0a1.488 1.488 0 0 1 0-2.12 1.45 1.45 0 0 1 1.084-.444c.395 0 .79.148 1.085.444.296.296.444.64.444 1.085-.05.394-.198.789-.493 1.035Z\",\n fill: \"#282838\"\n })));\n};\nexport default SvgKeys;","var _path, _path2, _path3, _path4;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgEnglishFlag = function SvgEnglishFlag(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.02 20.002c5.524-.008 9.992-4.492 9.982-10.015-.01-5.523-4.496-9.993-10.019-9.985C4.461.01-.008 4.494.003 10.017c.01 5.522 4.495 9.993 10.018 9.985Z\",\n fill: \"#fff\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.995 19.773V12.046c0-.038.025-.051.063-.051h7.753c.126-.644.202-1.338.202-2.02 0-.682-.064-1.39-.202-2.02h-7.652c-.164 0-.164.025-.164-.127V.19A8.62 8.62 0 0 0 10.278 0h-.543C9.14 0 8.56.088 7.992.202v7.727c0 .038-.025.063-.063.063H.202A9.584 9.584 0 0 0 0 10c0 .682.063 1.364.202 1.995h7.626c.152 0 .152 0 .152.152v7.613a8.868 8.868 0 0 0 1.742.177h.543a7.806 7.806 0 0 0 1.73-.164Z\",\n fill: \"#FF1300\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.667 5.96V.568a10.06 10.06 0 0 0-4.546 3.27c1.465.733 2.942 1.465 4.407 2.21.139.063.139.063.139-.088ZM13.434 6.048c1.478-.745 2.955-1.477 4.432-2.222a9.912 9.912 0 0 0-4.558-3.27V5.96c0 .151 0 .151.126.088ZM6.54 13.952c-1.477.732-2.942 1.477-4.419 2.21a10.059 10.059 0 0 0 4.546 3.27V14.04c0-.151 0-.151-.127-.088ZM13.308 14.04v5.405a9.912 9.912 0 0 0 4.558-3.27c-1.477-.733-2.954-1.478-4.432-2.21-.126-.076-.126-.076-.126.076Z\",\n fill: \"#3C3B6E\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.775 6.604c-.025.012-.063.025-.088.063.038.012.076.012.114.012h2.689c.1 0 .19-.025.278-.063.72-.366 1.44-.72 2.159-1.086a9.652 9.652 0 0 0-.682-1.161l-.303.151a639.308 639.308 0 0 1-4.167 2.084ZM6.2 13.397c.025-.013.063-.026.088-.064-.038-.012-.076-.012-.114-.012h-2.69a.69.69 0 0 0-.277.063c-.72.354-1.427.72-2.146 1.073.202.404.429.796.681 1.162.089-.05.19-.089.278-.14 1.39-.694 2.778-1.388 4.18-2.082ZM3.32 6.654a.378.378 0 0 0-.1-.05c-.72-.367-1.44-.72-2.16-1.086a9.25 9.25 0 0 0-.492 1.149h2.664c.026.012.05.012.089-.013ZM16.667 13.333c.025.038.063.038.088.064.72.366 1.452.72 2.172 1.085a9.43 9.43 0 0 0 .492-1.161h-2.69c-.012 0-.037 0-.062.012Z\",\n fill: \"#FF1300\"\n })));\n};\nexport default SvgEnglishFlag;","var _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgSpanishFlag = function SvgSpanishFlag(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20 10.095c0-1.982-.568-3.763-1.553-5.404H1.553C.568 6.332 0 8.113 0 10.095c0 1.944.556 3.813 1.503 5.328h16.994C19.444 13.908 20 12.04 20 10.095Z\",\n fill: \"#FFCD00\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10 .032c-3.548 0-6.667 2.007-8.447 4.659h16.894C16.667 2.039 13.548.03 10 .03ZM18.497 15.423H1.503c1.553 2.526 4.166 4.167 7.21 4.546h2.562c3.056-.379 5.67-2.02 7.222-4.546Z\",\n fill: \"#FF1300\"\n })));\n};\nexport default SvgSpanishFlag;","var _path, _path2, _path3;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgFrenchFlag = function SvgFrenchFlag(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 21,\n height: 20,\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.77.568v18.864c3.914-1.364 6.705-5.076 6.705-9.432 0-4.356-2.79-8.068-6.705-9.432Z\",\n fill: \"#FF1300\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.5 0a9.657 9.657 0 0 0-3.295.568V19.42a9.656 9.656 0 0 0 3.295.568c1.162 0 2.26-.202 3.27-.568V.57A9.565 9.565 0 0 0 10.5 0Z\",\n fill: \"#fff\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M.525 10a9.977 9.977 0 0 0 6.68 9.432V.568A9.977 9.977 0 0 0 .525 10Z\",\n fill: \"#004FBB\"\n })));\n};\nexport default SvgFrenchFlag;","var _path, _path2, _path3;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgItalianFlag = function SvgItalianFlag(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 21,\n height: 20,\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.77.568v18.864c3.914-1.364 6.705-5.076 6.705-9.432 0-4.356-2.79-8.068-6.705-9.432Z\",\n fill: \"#CE2B37\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.5 0a9.657 9.657 0 0 0-3.295.568V19.42a9.656 9.656 0 0 0 3.295.568c1.162 0 2.26-.202 3.27-.568V.57A9.565 9.565 0 0 0 10.5 0Z\",\n fill: \"#fff\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M.525 10a9.977 9.977 0 0 0 6.68 9.432V.568A9.977 9.977 0 0 0 .525 10Z\",\n fill: \"#009246\"\n })));\n};\nexport default SvgItalianFlag;","var _g, _defs;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgPointer = function SvgPointer(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 18,\n height: 24,\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#pointer_svg__a)\",\n stroke: \"#B1B5C4\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17 9c0 6.232-5.524 11.774-7.392 13.47a.894.894 0 0 1-1.216 0C6.524 20.774 1 15.233 1 9a8 8 0 1 1 16 0Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 9a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"pointer_svg__a\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M0 0h18v24H0z\"\n })))));\n};\nexport default SvgPointer;","import Ticket from \"../../public/custom-icons/detail-custom/ticket.svg\";\nimport GeoTag from \"../../public/custom-icons/detail-custom/geotag.svg\";\nimport Keys from \"../../public/custom-icons/detail-custom/keys.svg\";\nimport English from \"../../public/custom-icons/detail-custom/english-flag.svg\";\nimport Spanish from \"../../public/custom-icons/detail-custom/spanish-flag.svg\";\nimport French from \"../../public/custom-icons/detail-custom/french-flag.svg\";\nimport Italian from \"../../public/custom-icons/detail-custom/italian-flag.svg\";\nimport Pointer from \"../../public/custom-icons/detail-custom/pointer.svg\";\n\nconst packageDetailCustomSvg = {\n Ticket,\n GeoTag,\n Keys,\n English,\n Spanish,\n French,\n Pointer,\n Italian,\n};\n\nexport default packageDetailCustomSvg;\n","import { FC, useMemo } from \"react\";\nimport { MDBCol, MDBRow, MDBSwitch } from \"mdb-react-ui-kit\";\nimport { ETypePackage } from \"@/models/common/enums\";\nimport TagsPackageType from \"@/components/detail/tags/TagsPackageType\";\nimport { useIsLG, useIsMD, useIsXL } from \"@/utils/hooks/useWindowSizes\";\nimport { transformPrice } from \"@/utils/common\";\nimport { TourReadableTO } from \"../../models/detail\";\nimport styles from \"../../styles/detail/DetailHead.module.scss\";\nimport packageDetailCustomSvg from \"../../utils/svg-icon/detailPackageCustom\";\n\nconst HeadBox: FC<{\n packageDetail: TourReadableTO;\n days: string;\n isMobile?: boolean;\n isPremium: boolean;\n setIsPremium: (el: boolean) => void;\n typePackage: ETypePackage;\n className?: string;\n showAccomodations?: boolean;\n}> = ({\n packageDetail,\n days,\n isMobile,\n isPremium,\n setIsPremium,\n typePackage,\n className = \"\",\n showAccomodations = true,\n}) => {\n const { Ticket, GeoTag, Keys } = packageDetailCustomSvg;\n\n const isMD = useIsMD();\n const isLG = useIsLG();\n const isXL = useIsXL();\n\n const paddingTop = useMemo(() => {\n if (!isMobile && (isMD || isLG || isXL)) return 1;\n if (isMobile) return 3;\n return 1;\n }, [isLG, isMD, isMobile, isXL]);\n\n return (\n <div\n className={`${styles.headLowerContainer} mt-4 d-flex ${className}justify-content-center`}\n >\n <div\n className={\n isMobile\n ? styles.headLowerContainerMobile\n : styles.headLowerContentContainer\n }\n >\n <MDBRow center>\n <MDBCol\n className={`${styles.headRowCardContainer} bg-white rounded-9`}\n >\n <MDBRow\n className={`${styles.headCardContainer} flex-column-reverse flex-lg-row`}\n style={{ paddingTop: `${paddingTop}rem` }}\n >\n <MDBCol\n size={12}\n lg={9}\n className=\"d-flex flex-column flex-md-row mt-3 mt-lg-0\"\n >\n <MDBCol\n size={12}\n md={4}\n className=\"d-flex justify-content-start justify-content-lg-center my-2 my-lg-0\"\n >\n <div className=\"d-flex align-items-center align-items-lg-start pt-md-3\">\n <div className={styles.headIcon}>\n <Ticket alt=\"ticket\" />\n </div>\n <div>\n <h4>Your Journey</h4>\n <p className=\"pe-lg-4 m-0 mb-lg-3\">\n {`${days} days, ${\n +days - 1\n } nights`}\n </p>\n </div>\n </div>\n </MDBCol>\n\n <MDBCol\n size={12}\n md={4}\n className=\"d-flex justify-content-start justify-content-lg-center my-2 my-lg-0\"\n >\n <div className=\"d-flex align-items-center align-items-lg-start pt-md-3 w-100\">\n <div className={styles.headIconSecond}>\n <GeoTag alt=\"geotag\" />\n </div>\n <div>\n <h4>Destinations</h4>\n <p className=\"pe-lg-4 m-0 mb-lg-3\">\n {packageDetail.destinations.map(\n (el, i) => (\n <span\n // eslint-disable-next-line react/no-array-index-key\n key={`${el.city}_${i}`}\n >\n {(i ? \", \" : \"\") +\n el.city}\n </span>\n )\n )}\n </p>\n </div>\n </div>\n </MDBCol>\n {showAccomodations && (\n <MDBCol\n size={12}\n md={4}\n className=\"d-flex justify-content-start justify-content-lg-center my-2 my-lg-0\"\n >\n <div className=\"d-flex align-items-center align-items-lg-start pt-md-3\">\n <div\n className={\n styles.headIconSecond\n }\n >\n <Keys alt=\"keys\" />\n </div>\n <div>\n <h4>Accommodations</h4>\n <p className=\"pe-lg-4 m-0 mb-lg-3\">\n {`${\n isPremium\n ? \"Exclusive accommodation\"\n : \"4* Hotels\"\n }`}\n </p>\n </div>\n </div>\n </MDBCol>\n )}\n </MDBCol>\n\n <MDBCol\n size={12}\n md={3}\n className=\"d-flex justify-content-center mx-auto mx-lg-0\"\n >\n <div className={styles.priceAndLevelContainer}>\n <div\n className={`${styles.cardPriceContainer} mb-3`}\n >\n <div>\n <span\n style={{\n paddingTop: \"0.4rem\",\n fontFamily:\n \"GeneralSans-Regular\",\n }}\n >\n from \n </span>\n <span className=\"fs-2\">\n {`${transformPrice(\n Number(\n packageDetail.startingPrice\n ? packageDetail.startingPrice\n : packageDetail.price\n )\n )}`}\n €\n </span>\n <div\n className={`${styles.startingPriceStyle}`}\n >\n Starting price per person\n <br /> in double room\n </div>\n </div>\n </div>\n {typePackage ===\n ETypePackage.QUALITY_AND_PREMIUM && (\n <div className=\"d-flex justify-content-center mt-1 mb-2\">\n <span\n className={`pe-3 ${\n !isPremium\n ? styles.cardSecondaryTextBold\n : styles.cardSecondaryText\n }`}\n >\n Quality\n </span>\n <MDBSwitch\n checked={isPremium}\n onChange={() => {\n setIsPremium(!isPremium);\n // router.replace(\n // {\n // ...router,\n // query: {\n // ...router.query,\n // isPremium:\n // !isPremium,\n // },\n // },\n // undefined,\n // { shallow: true }\n // );\n const url = new URL(\n window.location.href\n );\n url.searchParams.set(\n \"isPremium\",\n !isPremium as unknown as string\n );\n window.history.replaceState(\n null,\n \"\",\n url\n );\n }}\n className={styles.customSwitch}\n />\n <span\n className={`ps-3 ${\n isPremium\n ? styles.cardSecondaryTextBold\n : styles.cardSecondaryText\n }`}\n >\n Premium\n </span>\n </div>\n )}\n\n {typePackage !==\n ETypePackage.QUALITY_AND_PREMIUM && (\n <TagsPackageType\n isPremium={\n typePackage ===\n ETypePackage.ONLY_PREMIUM\n }\n />\n )}\n </div>\n </MDBCol>\n </MDBRow>\n </MDBCol>\n </MDBRow>\n </div>\n </div>\n );\n};\n\nHeadBox.defaultProps = {\n isMobile: false,\n};\n\nexport default HeadBox;\n","/* eslint-disable jsx-a11y/media-has-caption */\nimport { MDBBtn, MDBContainer } from \"mdb-react-ui-kit\";\nimport React, { FC, useEffect, useMemo, useRef, useState } from \"react\";\nimport Image from \"next/image\";\nimport { ETypePackage } from \"@/models/common/enums\";\nimport { checkRating } from \"@/utils/common\";\nimport { Icon } from \"@iconify/react\";\nimport playIcon from \"@iconify-icons/fa-solid/play\";\nimport pauseIcon from \"@iconify-icons/fa-solid/pause\";\nimport volumeMuteIcon from \"@iconify-icons/fa-solid/volume-mute\";\nimport volumeUpIcon from \"@iconify-icons/fa-solid/volume-up\";\nimport expandIcon from \"@iconify-icons/fa-solid/expand\";\nimport compressIcon from \"@iconify-icons/fa-solid/compress\";\nimport { starsArray } from \"@/utils/star-utils\";\nimport { useIsLG, useIsMD } from \"../../utils/hooks/useWindowSizes\";\nimport HeadBox from \"./HeadBox\";\nimport mediaControlSvg from \"../../utils/svg-icon/mediaControl\";\nimport { TourReadableTO } from \"../../models/detail\";\nimport styles from \"../../styles/detail/DetailHead.module.scss\";\n\nconst PackageDetailHead: FC<{\n isVideoAvailable?: boolean;\n packageDetail: TourReadableTO;\n days: string;\n isPremium: boolean;\n isPromo: boolean;\n setIsPremium: (el: boolean) => void;\n typePackage: ETypePackage;\n showAccomodations?: boolean;\n // eslint-disable-next-line sonarjs/cognitive-complexity\n}> = ({\n packageDetail,\n days,\n isPremium,\n isPromo,\n setIsPremium,\n typePackage,\n showAccomodations = true,\n isVideoAvailable = true,\n // eslint-disable-next-line sonarjs/cognitive-complexity\n}) => {\n // eslint-disable-next-line sonarjs/cognitive-complexity\n const [videoPlay, setVideoPlay] = useState<boolean>(false);\n const [error, setError] = useState(false);\n const { Play } = mediaControlSvg;\n const videoEl = useRef<HTMLVideoElement>(null);\n\n const isMobile = useIsMD();\n\n // eslint-disable-next-line sonarjs/cognitive-complexity\n const checkedRating = checkRating(packageDetail.rating);\n\n // eslint-disable-next-line sonarjs/cognitive-complexity\n\n const onEndAction = () => {\n setVideoPlay(false);\n };\n\n const isLG = useIsLG();\n const isMD = useIsMD();\n\n // eslint-disable-next-line sonarjs/cognitive-complexity\n const paddingBottom = useMemo(() => {\n if (isMD) {\n return 1;\n }\n if (!isLG) {\n return packageDetail.destinations.length > 10\n ? packageDetail.destinations.length - 2\n : 10;\n }\n return packageDetail.destinations.length > 10\n ? packageDetail.destinations.length\n : 10;\n }, [isLG, isMD, packageDetail.destinations.length]);\n\n const [isPlaying, setIsPlaying] = useState(false);\n const [isMuted, setIsMuted] = useState(false);\n const [isFullscreen, setIsFullscreen] = useState(false);\n const [showControls, setShowControls] = useState(true);\n const shouldRenderImage = !videoPlay || (isMobile && videoPlay);\n\n let hideControlsTimeout: ReturnType<typeof setTimeout> | null = null;\n\n // eslint-disable-next-line sonarjs/cognitive-complexity\n const togglePlayPause = () => {\n if (videoEl.current) {\n if (isPlaying) {\n videoEl.current.pause();\n } else {\n videoEl.current.play();\n }\n setIsPlaying(!isPlaying);\n }\n };\n\n // eslint-disable-next-line sonarjs/cognitive-complexity\n const toggleMute = () => {\n if (videoEl.current) {\n videoEl.current.muted = !isMuted;\n setIsMuted(!isMuted);\n }\n };\n\n // eslint-disable-next-line sonarjs/cognitive-complexity\n const toggleFullscreen = () => {\n if (videoEl.current) {\n if (!isFullscreen) {\n if (videoEl.current.requestFullscreen) {\n videoEl.current.requestFullscreen();\n }\n } else if (document.exitFullscreen) {\n document.exitFullscreen();\n }\n setIsFullscreen(!isFullscreen);\n }\n };\n\n const handleVideoPlay = () => setIsPlaying(true);\n const handleVideoPause = () => setIsPlaying(false);\n\n // eslint-disable-next-line sonarjs/cognitive-complexity\n const handleVolumeChange = () =>\n setIsMuted(videoEl.current?.muted ?? false);\n\n // eslint-disable-next-line sonarjs/cognitive-complexity\n const handleFullscreenChange = () => {\n setIsFullscreen(!!document.fullscreenElement);\n };\n\n // eslint-disable-next-line sonarjs/cognitive-complexity\n useEffect(() => {\n const video = videoEl.current;\n\n if (video) {\n video.addEventListener(\"play\", handleVideoPlay);\n video.addEventListener(\"pause\", handleVideoPause);\n video.addEventListener(\"volumechange\", handleVolumeChange);\n }\n\n document.addEventListener(\"fullscreenchange\", handleFullscreenChange);\n\n return () => {\n if (video) {\n video.removeEventListener(\"play\", handleVideoPlay);\n video.removeEventListener(\"pause\", handleVideoPause);\n video.removeEventListener(\"volumechange\", handleVolumeChange);\n }\n document.removeEventListener(\n \"fullscreenchange\",\n handleFullscreenChange\n );\n };\n }, []);\n\n // eslint-disable-next-line sonarjs/cognitive-complexity\n const startHideControlsTimer = () => {\n if (hideControlsTimeout !== null) {\n clearTimeout(hideControlsTimeout);\n }\n hideControlsTimeout = setTimeout(() => {\n setShowControls(false);\n }, 5000);\n };\n\n // eslint-disable-next-line sonarjs/cognitive-complexity\n const handleMouseMove = () => {\n setShowControls(true);\n };\n\n useEffect(() => {\n if (videoPlay && videoEl.current?.requestFullscreen) {\n videoEl.current?.requestFullscreen();\n }\n }, [videoPlay]);\n\n return (\n <MDBContainer\n fluid\n className={styles.headBgColor}\n style={{ paddingBottom: `${paddingBottom}rem` }}\n >\n <div\n className={styles.headBgImageContainer}\n onMouseMove={handleMouseMove}\n onMouseLeave={() => setShowControls(false)}\n >\n <div\n style={{ display: videoPlay ? \"block\" : \"flex\" }}\n className={styles.headPaddingContainer}\n >\n {/* // IMPORTANTE: necessità di capire che tipo di video avremo */}\n {/* // il codice sottostante garantise un video full-width senza bande nere */}\n {/* // e centrato anche sul telefono, ma richiede l'url di un video e non il player youtube */}\n {videoPlay && (\n <div\n style={{\n width: isMobile ? \"100%\" : \"90%\",\n height: \"100%\",\n position: \"relative\",\n top: \"0px\",\n zIndex: isMobile ? 10 : 0,\n objectFit: \"cover\",\n borderRadius: \"20px\",\n transform: isMobile ? \"none\" : \"scale(1.5)\",\n transition: \"transform 0.6s ease-in-out\",\n backgroundColor: \"black\",\n marginBottom: isMobile ? \"2rem\" : \"0\",\n }}\n >\n {/* // eslint-disable-next-line\n sonarjs/cognitive-complexity */}\n <video\n className=\"w-100 h-100\"\n style={{\n objectFit: isMobile ? \"contain\" : \"cover\",\n paddingBottom: isMobile ? \"1rem\" : \"0\",\n }}\n controls\n autoPlay\n title=\"review video\"\n ref={videoEl}\n onEnded={onEndAction}\n muted={isMuted}\n onPlay={startHideControlsTimer}\n onPause={() => setShowControls(true)}\n >\n <source src={packageDetail.coverVideo} />\n </video>\n {!isMobile && (\n <div\n className={`${styles.customControls} ${\n !showControls ? styles.hideControls : \"\"\n }`}\n >\n <button\n type=\"button\"\n onClick={toggleMute}\n className={styles.controlButton}\n >\n <Icon\n icon={\n isMuted\n ? volumeMuteIcon\n : volumeUpIcon\n }\n />\n </button>\n <button\n type=\"button\"\n onClick={togglePlayPause}\n className={styles.controlButton}\n >\n <Icon\n icon={\n isPlaying ? pauseIcon : playIcon\n }\n />\n </button>\n <button\n type=\"button\"\n onClick={toggleFullscreen}\n className={styles.controlButton}\n >\n <Icon\n icon={\n isFullscreen\n ? compressIcon\n : expandIcon\n }\n />\n </button>\n </div>\n )}\n </div>\n )}\n {shouldRenderImage && (\n <div>\n <div className={styles.radialContainer} />\n <Image\n alt=\"tour-image\"\n src={\n error\n ? \"/images/tours/across-italy-reduced.jpg\"\n : packageDetail.coverImage\n }\n className={styles.imageFit}\n fill\n onError={() => {\n setError(true);\n }}\n />\n </div>\n )}\n <div className={styles.headTitleContainer}>\n {videoPlay || !isVideoAvailable ? null : (\n <MDBBtn\n className={`${styles.playButton} p-0 mb-3 mb-lg-0 p-lg-4 shadow-0`}\n onClick={() => setVideoPlay(true)}\n >\n <Play />\n </MDBBtn>\n )}\n {isPromo && !videoPlay && (\n <div\n className={`rounded-5 ${styles.promoTag} text-center text-uppercase d-inline-flex px-3 py-2 my-2`}\n >\n Promo\n </div>\n )}\n {!videoPlay && (\n <div>\n <h1 className={styles.headTitle}>\n {packageDetail.tourTitle}\n </h1>\n\n <div className=\"d-flex align-items-center mb-3\">\n {checkedRating && (\n <>\n <div\n className={styles.starContainer}\n >\n {starsArray(\n packageDetail.rating,\n true\n )}\n </div>\n\n <span\n className={styles.starText}\n >{`${Number(\n packageDetail.rating\n )}`}</span>\n </>\n )}\n {/* {(packageDetail.reviews?.length ?? 0) >\n 0 && (\n <span\n className={`${styles.reviewsText} ps-1`}\n >{`(${\n packageDetail.reviews?.length ?? 0\n } reviews)`}</span>\n )} */}\n </div>\n </div>\n )}\n </div>\n </div>\n {useIsMD() && (\n <HeadBox\n isPremium={isPremium}\n setIsPremium={setIsPremium}\n isMobile\n days={days}\n packageDetail={packageDetail}\n typePackage={typePackage}\n showAccomodations={showAccomodations}\n // className={\"mt-5\"}\n // className={videoPlay ? \"d-none\" : \"\"}\n />\n )}\n </div>\n {!useIsMD() && (\n <HeadBox\n days={days}\n packageDetail={packageDetail}\n isPremium={isPremium}\n setIsPremium={setIsPremium}\n typePackage={typePackage}\n className={videoPlay ? \"d-none\" : \"\"}\n showAccomodations={showAccomodations}\n />\n )}\n </MDBContainer>\n );\n};\n\nexport default PackageDetailHead;\n","export default {\"src\":\"/_next/static/media/adventures_box.00f2ae20.png\",\"height\":269,\"width\":256,\"blurDataURL\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAv0lEQVR42kXNMa7CMAyAYb/HgJg5AkJiR+IIHIATcAnETeAmjKzMbGzAhAh1aZqmobFTkyBQP8myh18yJArzP/I09cRrIj4w8wIivNgBJMw8IwoSmKWNE8Pz7fScwI+t3ZqJROOjKVC9mLzYut5DstxJ35jqSN5LkanwzO7ShiDOuUZrPYLEGLOv3Usi14a28Z5SgPp+HUJirR2bqCi0KKUEEaWqqhUkZVn2vnuEmG3yPN/Gew6dLup83v4DALwBukCf6e3docMAAAAASUVORK5CYII=\",\"blurWidth\":8,\"blurHeight\":8};","export default {\"src\":\"/_next/static/media/discover_box.ae7b3b1b.png\",\"height\":269,\"width\":256,\"blurDataURL\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAxUlEQVR42k2OMQrCQBBFV7Cz0gOIrbWChbfwGF7AQi9hIXgVQezETsgBrETQTWKy2ZhNZmYzLpEk/mqG/x4zog4ATgjtipAuSOVCuND90KtKRJq7kgGJgYgRyNexnLZ2DjNA5EDF+E5UXrg5+2TXBtBar/Oi4EgnGKioRGvZmPwRhP7gB6R6Z4xhW7IhawsA5CwznCRqJE57rx88o6GDzipWLKXPYRhymqabyvaOt359SsrX0pVbZ47Ff5i50yztX10hhPgCM1eY66X1dPYAAAAASUVORK5CYII=\",\"blurWidth\":8,\"blurHeight\":8};","export default {\"src\":\"/_next/static/media/expert_box.1f61f76c.png\",\"height\":269,\"width\":256,\"blurDataURL\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAuklEQVR42lWLMQ7CMAxFLSQGpI5cghGxcxMWJg7BxoDEBbgLGxOwcAVGREKb0KRpEqc1bqVK8CTL1vf7cL6VGTDUNnPE5oqp2WHEpav9GAakfE9DxHuKSN2wRIhpBQO2qi4YAlX649VL+E7yETc1QAa5eE6cc4+EiSqlW6s0YohkrT3CAAunyC2WamrJeR/IlOUeBtheK6VICEFKazLGJM5m8AuHi6LIt1LKA8v9k/cIOkpj+PhHa91nX3m/mrW9vFdlAAAAAElFTkSuQmCC\",\"blurWidth\":8,\"blurHeight\":8};","import { MDBCol, MDBContainer, MDBRow } from \"mdb-react-ui-kit\";\nimport Image from \"next/image\";\nimport { forwardRef, ReactElement, RefObject, useEffect } from \"react\";\nimport adventuresPic from \"../../public/images/adventures_box.png\";\nimport discoverPic from \"../../public/images/discover_box.png\";\nimport expertPic from \"../../public/images/expert_box.png\";\nimport { whyChoosePlayTitle } from \"../../utils/mockData/detailMocks\";\nimport styles from \"../../styles/detail/Detail.WhyChoosePlay.module.scss\";\nimport { randomUid } from \"../../utils/randomIds\";\nimport SectionTitle from \"../common/SectionTitle\";\nimport { ISectionTitle } from \"../../models/common/common\";\nimport { useStore } from \"../../store\";\nimport useOnScreen from \"../../utils/hooks/useOnScreen\";\nimport { EDetailSection } from \"../../models/common/enums\";\n\nconst WhyChoosePlay = forwardRef<HTMLDivElement>((_, ref): ReactElement => {\n const dispatch = useStore(state => state.dispatchPackage);\n\n const isOnScreen = useOnScreen(ref as RefObject<HTMLDivElement>);\n\n const data = [\n {\n id: randomUid(),\n image: discoverPic,\n title: \"Discover Italy\",\n description:\n \"We’re known for our many stereotypes but there’s so much more about Italy than that.\",\n },\n {\n id: randomUid(),\n image: expertPic,\n title: \"Our Italian experts\",\n description:\n \"You will receive a guided tour by someone who loves, lives and breathes this Country.\",\n },\n {\n id: randomUid(),\n image: adventuresPic,\n title: \"Effortless adventures\",\n description:\n \"Just enjoy your trip, we will arrange all the scheduling. Our tours start everyday, we’re waiting for you!\",\n },\n ];\n\n const title: ISectionTitle = {\n title: whyChoosePlayTitle,\n titleColumnSize: 12,\n spaceBetween: 2,\n alignment: \"justify-content-center text-center\",\n classNameContainer: \"py-3\",\n };\n\n useEffect(() => {\n if (isOnScreen) {\n dispatch({\n type: \"SET_CURRENT_SECTION\",\n payload: EDetailSection.HIW,\n });\n }\n }, [isOnScreen]);\n\n return (\n <MDBContainer ref={ref} fluid className=\"py-5 px-0\">\n <MDBRow className=\"d-flex justify-content-center\">\n <MDBCol size={10} className=\"d-flex justify-content-center\">\n <SectionTitle sectionTitle={title} />\n </MDBCol>\n </MDBRow>\n <MDBRow className=\"d-flex justify-content-center\">\n <MDBCol size={10} lg={12} xl={10}>\n <MDBRow className=\"justify-content-evenly mx-2 mx-lg-0\">\n {data.map(el => (\n <MDBCol\n key={el.id}\n size={12}\n lg={3}\n className=\"m-1 m-lx-2 rounded-7 d-flex flex-column justify-content-center\"\n >\n <MDBRow>\n <div className=\"position-relative w-100 h-100 text-center\">\n <Image src={el.image} alt={el.title} />\n </div>\n </MDBRow>\n <MDBRow\n className={`${styles.title} justify-content-center`}\n >\n {el.title}\n </MDBRow>\n <MDBRow\n className={`${styles.description} justify-content-center text-center`}\n >\n {el.description}\n </MDBRow>\n </MDBCol>\n ))}\n </MDBRow>\n </MDBCol>\n </MDBRow>\n </MDBContainer>\n );\n});\n\nexport default WhyChoosePlay;\n","import React, { FC, useMemo } from \"react\";\nimport { EDetailSection } from \"@/models/common/enums\";\nimport styles from \"@/styles/detail/DetailRecap.module.scss\";\nimport { useStore } from \"@/store/index\";\n\ntype PackageDetailNavbarItemProps = {\n thisSection: EDetailSection;\n handleNavigation: (el: EDetailSection) => void;\n title: string;\n};\n\nconst PackageDetailNavbarItem: FC<PackageDetailNavbarItemProps> = ({\n thisSection,\n handleNavigation,\n title,\n}) => {\n const currentSection = useStore(state => state.packageState.currentSection);\n\n const spanClassName = useMemo(() => {\n return currentSection === thisSection\n ? styles.spanNavSelected\n : styles.spanNav;\n }, [thisSection, currentSection]);\n return (\n <span\n className={spanClassName}\n onClick={() => handleNavigation(thisSection)}\n >\n {title}\n </span>\n );\n};\n\nexport default PackageDetailNavbarItem;\n","import { FC, useCallback, useEffect, useState } from \"react\";\nimport { EDetailSection, ERoomType } from \"@/models/common/enums\";\nimport { useRouter } from \"next/router\";\nimport { useIsMD, useIsSM } from \"@/utils/hooks/useWindowSizes\";\nimport PackageDetailNavbarItem from \"@/components/detail/PackageDetailNavbarItem\";\nimport { useStore } from \"@/store/index\";\nimport { IRoom } from \"@/models/checkout\";\nimport { transformPrice } from \"@/utils/common\";\nimport styles from \"../../styles/detail/DetailRecap.module.scss\";\n\nconst PackageDetailNavbar: FC<{\n showAccomodations?: boolean;\n isRequestAQuote: boolean;\n handleNavigation: (el: EDetailSection) => void;\n}> = ({ showAccomodations = true, handleNavigation, isRequestAQuote }) => {\n const router = useRouter();\n\n const rooms = useStore(state => state.checkoutState.orderData.rooms);\n const totalAmount = useStore(\n state => state.checkoutState.orderData.totalAmount\n );\n const [isDefault, setIsDefault] = useState<boolean>(true);\n\n const deepEqual = useCallback((obj1: IRoom, obj2: IRoom): boolean => {\n if (obj1 === obj2) return true;\n\n if (\n obj1 == null ||\n obj2 == null ||\n typeof obj1 !== \"object\" ||\n typeof obj2 !== \"object\"\n ) {\n return false;\n }\n\n const keys1 = Object.keys(obj1);\n const keys2 = Object.keys(obj2);\n\n if (keys1.length !== keys2.length) {\n return false;\n }\n\n // eslint-disable-next-line no-restricted-syntax\n for (const key of keys1) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n if (!keys2.includes(key) || !deepEqual(obj1[key], obj2[key])) {\n return false;\n }\n }\n\n return true;\n }, []);\n\n const arraysAreEqual = useCallback(\n (arr1: IRoom[], arr2: IRoom[]): boolean => {\n if (arr1.length !== arr2.length) return false;\n\n for (let i = 0; i < arr1.length; i++) {\n if (!deepEqual(arr1[i], arr2[i])) {\n return false;\n }\n }\n\n return true;\n },\n [deepEqual]\n );\n\n useEffect(() => {\n const defaultRoomValue: IRoom[] = [\n {\n type: ERoomType.DOUBLE,\n adults: 1,\n children: [],\n newborns: 0,\n },\n ];\n\n if (arraysAreEqual(rooms, defaultRoomValue)) {\n setIsDefault(true);\n } else {\n setIsDefault(false);\n }\n }, [arraysAreEqual, rooms]);\n\n const isSM = useIsSM();\n const isMD = useIsMD();\n\n const { clickConfirmDate } = useStore(state => state.checkoutState);\n\n return (\n <div className={`w-100 ${styles.customContainer}`}>\n <div className={styles.customContainerInner}>\n <div className=\"d-flex justify-content-between align-items-center\">\n <PackageDetailNavbarItem\n thisSection={EDetailSection.GENERAL}\n handleNavigation={handleNavigation}\n title=\"General Info\"\n />\n <PackageDetailNavbarItem\n thisSection={EDetailSection.ITINERARY}\n handleNavigation={handleNavigation}\n title=\"Itinerary\"\n />\n\n {showAccomodations && (\n <PackageDetailNavbarItem\n thisSection={EDetailSection.ACCOMMODATION}\n handleNavigation={handleNavigation}\n title=\"Accommodations\"\n />\n )}\n\n <PackageDetailNavbarItem\n thisSection={EDetailSection.HIW}\n handleNavigation={handleNavigation}\n title=\"How It Works\"\n />\n\n <span\n className={\n useIsSM() ? styles.spanNav : styles.spanNavFaq\n }\n onClick={() => router.push(\"/faq\")}\n >\n FAQ\n </span>\n </div>\n {!isSM && !isMD && !isRequestAQuote && (\n <div className={styles.priceSection}>\n <div className=\"d-flex flex-row gap-2\">\n <span className={styles.priceSectionPriceLegend}>\n {/* {!clickConfirmDate || !isDefault\n ? \"Your package price: \"\n : \"\"} */}\n Your package price:\n </span>\n <span className={styles.priceSectionPrice}>\n {clickConfirmDate\n ? isDefault\n ? transformPrice(totalAmount / 2)\n : transformPrice(totalAmount)\n : \"-\"}\n €\n </span>\n\n {/* <span className={styles.priceSectionPriceLegend}>\n {isDefault && clickConfirmDate\n ? \"/person (starting price)\"\n : \"\"}\n </span> */}\n </div>\n </div>\n )}\n {!isRequestAQuote && (\n <div\n className={\n !isSM\n ? clickConfirmDate\n ? styles.reserveButton\n : styles.reserveButtonDisabled\n : `d-none`\n }\n onClick={() =>\n clickConfirmDate &&\n handleNavigation(EDetailSection.GENERAL)\n }\n >\n <span>Reserve</span>\n </div>\n )}\n </div>\n </div>\n );\n};\n\nexport default PackageDetailNavbar;\n","import { MDBBtn } from \"mdb-react-ui-kit\";\nimport { FC } from \"react\";\nimport { useRouter } from \"next/router\";\nimport { TourReadableTO } from \"@/models/detail\";\nimport { EDetailSection, ETypeToastMessage } from \"@/models/common/enums\";\nimport useSticky from \"@/hooks/useSticky\";\nimport { checkRating } from \"@/utils/common\";\nimport { useStore } from \"@/store/index\";\nimport { useToggleFavourite } from \"@/utils/queries/hooks/useToggleFavourite\";\nimport styles from \"../../styles/detail/DetailRecap.module.scss\";\nimport businessSvg from \"../../utils/svg-icon/business\";\nimport contactsSvg from \"../../utils/svg-icon/contacts\";\nimport userInterfaceSvg from \"../../utils/svg-icon/userInterface\";\nimport PackageDetailNavbar from \"./PackageDetailNavbar\";\n\nconst PackageDetailRecap: FC<{\n showAccomodations?: boolean;\n isRequestAQuote: boolean;\n handleNavigation: (el: EDetailSection) => void;\n packageDetail: TourReadableTO;\n days: string;\n}> = ({\n showAccomodations = true,\n handleNavigation,\n packageDetail,\n days,\n isRequestAQuote,\n}) => {\n const { FlagLine, ClockLine } = contactsSvg;\n const { CoinLine } = businessSvg;\n const {\n ShareSquare,\n ArrowLeftSimpleLine,\n ArrowRightSimpleLine,\n StarFilled,\n HeartLine,\n } = userInterfaceSvg;\n const router = useRouter();\n const shopDestination = \"/tours-destinations\";\n const { sticky, stickyRef } = useSticky();\n // eslint-disable-next-line no-underscore-dangle\n const authType = useStore(state => state.userState.userDetail._id);\n const { mutate: toggle } = useToggleFavourite();\n\n const toggleWishlist = (_id: string) => {\n toggle(_id);\n };\n\n const userDetail = useStore(state => state.userState.userDetail);\n const dispatchCommon = useStore(state => state.dispatchCommon);\n\n return (\n <>\n <div className={styles.customContainer}>\n <div className=\"d-flex justify-content-between align-items-center\">\n <MDBBtn\n className={styles.backToSearchButton}\n onClick={() =>\n router.push(\n {\n pathname: shopDestination,\n query: {\n tourType: null,\n destination: null,\n },\n },\n shopDestination,\n { shallow: true }\n )\n }\n >\n <ArrowLeftSimpleLine />\n <span className=\"pe-1\">Back to the Shop</span>\n </MDBBtn>\n <div>\n <span className={styles.spanArrowText}>Home</span>\n <span className={styles.arrowRightSvg}>\n <ArrowRightSimpleLine />\n </span>\n <span className={styles.spanArrowText}>Tours</span>\n <span className={styles.arrowRightSvg}>\n <ArrowRightSimpleLine />\n </span>\n <span className={styles.spanArrowText}>\n {packageDetail.tourType}\n </span>\n <span className={styles.arrowRightSvg}>\n <ArrowRightSimpleLine />\n </span>\n\n <span className={styles.arrowRightSvgFinal}>\n {packageDetail.tourTitle}\n </span>\n </div>\n </div>\n <div className={styles.interactionSvgContainer}>\n <div>\n {checkRating(packageDetail?.rating) && (\n <>\n <span className={styles.cardStarIcon}>\n <StarFilled />\n </span>\n <span className={styles.starText}>{`${Number(\n packageDetail.rating\n )}`}</span>\n </>\n )}\n {/* {(packageDetail.reviews?.length ?? 0) > 0 && (\n <span\n className={`${styles.cardSecondaryText} ps-2`}\n >{`(${\n packageDetail.reviews?.length ?? 0\n } reviews)`}</span>\n )} */}\n <span className={`${styles.cardClockIcon} ps-2`}>\n <ClockLine />\n </span>\n <span\n className={styles.cardSecondaryText}\n >{`${days} days, ${+days - 1} nights`}</span>\n <span className={`${styles.flagContainer} ps-2`}>\n <FlagLine />\n </span>\n <span className={styles.cardSecondaryText}>\n {`${packageDetail.destinations.length} ${\n packageDetail.destinations.length > 1\n ? \"Destinations\"\n : \"Destination\"\n }`}\n </span>\n <span className={`${styles.dollarSvgContainer} ps-2`}>\n <CoinLine />\n </span>\n <span className={styles.cardSecondaryText}>\n From {packageDetail.price}€\n </span>\n </div>\n <div className={styles.actionsContainer}>\n <span\n className={styles.interactionSvgSpan}\n onClick={() => {\n navigator.clipboard.writeText(\n window.location.href\n );\n dispatchCommon({\n type: \"SET_TOAST_MESSAGE_DATA\",\n payload: {\n type: ETypeToastMessage.SUCCESS,\n message: `Copied`,\n },\n });\n }}\n >\n <ShareSquare />\n </span>\n {authType && (\n <span\n className={`${\n userDetail.favouriteTours?.includes(\n packageDetail?.tourId\n )\n ? styles.interactionSvgSpanHeartActive\n : styles.interactionSvgSpanHeart\n }`}\n // className={styles.interactionSvgSpanHeart}\n onClick={e => {\n e.preventDefault();\n e.stopPropagation();\n toggleWishlist(packageDetail?.tourId);\n }}\n >\n <HeartLine />\n </span>\n )}\n </div>\n </div>\n </div>\n <div\n ref={stickyRef}\n className={`w-100 ${styles.navContainer} ${\n sticky && styles.isSticky\n }`}\n >\n <PackageDetailNavbar\n showAccomodations={showAccomodations}\n handleNavigation={handleNavigation}\n isRequestAQuote={isRequestAQuote}\n />\n </div>\n </>\n );\n};\n\nexport default PackageDetailRecap;\n","import styles from \"@/styles/detail/DetailFixedBar.module.scss\";\nimport { MDBCol, MDBRow } from \"mdb-react-ui-kit\";\nimport { FC } from \"react\";\nimport contactsSvg from \"@/utils/svg-icon/contacts\";\nimport userInterfaceSvg from \"@/utils/svg-icon/userInterface\";\nimport { TourReadableTO } from \"@/models/detail\";\nimport Btn from \"@/common/Btn\";\nimport { EBtnType } from \"@/models/common/enums\";\nimport { checkRating } from \"@/utils/common\";\nimport { useStore } from \"@/store/index\";\n\n/* eslint-disable no-underscore-dangle */\nconst DetailFixedBarMobile: FC<{\n isRequestAQuote?: boolean;\n price: number;\n isPremium: boolean;\n packageDetail: TourReadableTO;\n onClick: () => void;\n isButtonDisabled?: boolean;\n days: string;\n}> = ({\n price,\n isPremium,\n packageDetail,\n isRequestAQuote,\n isButtonDisabled = false,\n onClick,\n days,\n}) => {\n const { FlagLine, ClockLine } = contactsSvg;\n const { StarFilled } = userInterfaceSvg;\n\n const { rating } = packageDetail;\n\n const checkedRating = checkRating(rating);\n const { clickConfirmDate } = useStore(state => state.checkoutState);\n\n return (\n <MDBCol\n size={12}\n className={\n isPremium\n ? styles.sectionBorderPremium\n : styles.sectionBorderQuality\n }\n >\n <MDBRow className=\"pb-2 px-0 \">\n <MDBCol className=\"px-0 d-flex justify-content-center align-content-center\">\n <span className={`${styles.addToCartBoxPrice} pe-0`}>\n {clickConfirmDate ? `${price.toFixed(2)}` : \"- \"}€\n </span>\n </MDBCol>\n <MDBCol className=\"px-0 d-flex justify-content-center align-content-center\">\n <Btn\n btnType={EBtnType.TRANSPARENTNOHOVER}\n onClick={onClick}\n disabled={isButtonDisabled}\n >\n {isRequestAQuote ? \"Request a quote\" : \"Reserve\"}\n </Btn>\n </MDBCol>\n </MDBRow>\n <MDBRow className=\"p-0\">\n <div className=\"p-0 d-flex justify-content-center gap-3 justify-content-md-around align-content-center\">\n <div>\n {checkedRating && (\n <>\n <span className={styles.cardStarIcon}>\n <StarFilled />\n </span>\n <span className={styles.starText}>{`${Number(\n packageDetail.rating\n )}`}</span>\n </>\n )}\n </div>\n <div>\n <span\n className={`${styles.cardClockIcon} ${\n checkedRating ? \"\" : \"ps-2\"\n }`}\n >\n <ClockLine className=\"p-0\" />\n </span>\n <span\n className={`${styles.cardSecondaryText} ${\n checkedRating ? \"pe-2\" : \"\"\n }`}\n >{`${days} days, ${+days - 1} nights`}</span>\n </div>\n <div>\n <span className={`${styles.flagContainer} ps-2`}>\n <FlagLine />\n </span>\n <span className={styles.cardSecondaryText}>\n {packageDetail.destinations.length} destinations\n </span>\n </div>\n </div>\n </MDBRow>\n </MDBCol>\n );\n};\n/* eslint-enable no-underscore-dangle */\n\nexport default DetailFixedBarMobile;\n","import { FC, ReactNode, useEffect, useState } from \"react\";\nimport {\n MDBBtn,\n MDBModal,\n MDBModalBody,\n MDBModalContent,\n MDBModalDialog,\n} from \"mdb-react-ui-kit\";\nimport { ModalSize } from \"@/models/common/enums\";\nimport styles from \"@/styles/common/InfoModal.module.scss\";\nimport { useDisableBodyScroll } from \"@/hooks/useDisableBodyScroll\";\n\nconst ModalCartContainer: FC<{\n children: ReactNode;\n modalSize?: ModalSize;\n show: boolean;\n setShow: (state: boolean) => void;\n}> = ({ children, modalSize = ModalSize.FULL, show, setShow }) => {\n const [isBrowser, setIsBrowser] = useState(false);\n useEffect(() => {\n setIsBrowser(typeof window !== \"undefined\");\n }, []);\n const toggleShow = () => setShow(!show);\n\n useDisableBodyScroll(show);\n\n return isBrowser ? (\n <MDBModal\n show={show}\n setShow={setShow}\n tabIndex=\"-1\"\n className=\"bottom p-0\"\n staticBackdrop\n >\n <MDBModalDialog\n centered\n size={modalSize === ModalSize.MD ? undefined : modalSize}\n >\n <MDBModalContent>\n <MDBModalBody className=\"p-0\">\n <MDBBtn\n className={`${styles.closeButtonCart} btn-close`}\n color=\"none\"\n onClick={toggleShow}\n />\n {children}\n </MDBModalBody>\n </MDBModalContent>\n </MDBModalDialog>\n </MDBModal>\n ) : (\n <div />\n );\n};\n\nexport default ModalCartContainer;\n","import { MDBCol, MDBRow } from \"mdb-react-ui-kit\";\nimport { FC, useMemo } from \"react\";\nimport { InfoModalDoubleContent } from \"../../../models/common/common\";\nimport { ModalSize } from \"../../../models/common/enums\";\nimport { randomUid } from \"../../../utils/randomIds\";\nimport InfoModalContainer from \"./InfoModal\";\n\nconst InfoModalDouble: FC<{\n content: InfoModalDoubleContent;\n show: boolean;\n setShow: (state: boolean) => void;\n}> = ({ content, show, setShow }) => {\n const getBody = (text: string[], list: string[]) => {\n return (\n <>\n {text.map(item => (\n <p key={randomUid()}>{item}</p>\n ))}\n {list.length !== 0 && (\n <>\n <br />\n <ul>\n {list.map(listItem => (\n <li key={randomUid()}>{listItem}</li>\n ))}\n </ul>\n </>\n )}\n </>\n );\n };\n\n const bodyContents = useMemo(\n () =>\n content.content.map(el => (\n <MDBCol\n key={randomUid()}\n size={12}\n lg={5}\n className=\"border border-1 rounded-6 mt-3 mt-lg-0 mx-lg-2 p-2\"\n >\n <p className=\"fw-bold\">{el.title}</p>\n {getBody(el.content, el.listElements)}\n </MDBCol>\n )),\n [content]\n );\n\n return (\n <InfoModalContainer\n title={content.title}\n show={show}\n setShow={setShow}\n size={ModalSize.LG}\n >\n <MDBRow className=\"mx-3 justify-content-center\">\n {bodyContents}\n </MDBRow>\n </InfoModalContainer>\n );\n};\n\nexport default InfoModalDouble;\n","/* eslint-disable jsx-a11y/media-has-caption */\nimport { FC } from \"react\";\nimport InfoModalContainer from \"./InfoModal\";\n\nconst InfoModalVideo: FC<{\n content: string;\n show: boolean;\n setShow: (state: boolean) => void;\n}> = ({ content, show, setShow }) => {\n return (\n <InfoModalContainer title=\"\" show={show} setShow={setShow}>\n <video className=\"w-100 h-100\" controls title=\"review video\">\n <source src={content} />\n </video>\n </InfoModalContainer>\n );\n};\n\nexport default InfoModalVideo;\n","/* eslint-disable jsx-a11y/media-has-caption */\nimport { FC } from \"react\";\nimport generalSvg from \"@/utils/svg-icon/general\";\nimport styles from \"@/styles/detail/DetailBookingSidebar/InfoModalPremium.module.scss\";\nimport otherSvg from \"@/utils/svg-icon/other\";\nimport InfoModalContainer from \"./InfoModal\";\nimport Btn from \"../Btn\";\n\nconst InfoModalPremium: FC<{\n show: boolean;\n setShow: (state: boolean) => void;\n onBuy: (isPremiumFlag: boolean) => void;\n pricePremium: number;\n priceQuality: number;\n}> = ({ show, setShow, onBuy, pricePremium, priceQuality }) => {\n const { Star } = generalSvg;\n const { CatPremiumResized } = otherSvg;\n\n const differencePrice = pricePremium - priceQuality;\n\n return (\n <InfoModalContainer title=\"\" show={show} setShow={setShow}>\n <div className={styles.modalContainer}>\n <div className={styles.modalContainerLeft}>\n <p className={styles.modalContainerLeftTitle}>Premium</p>\n <div className={styles.modalContainerLeftImage}>\n <CatPremiumResized />\n </div>\n <div className={styles.modalContainerLeftFeature}>\n <Star />\n <p className={styles.modalContainerLeftFeatureText}>\n Exclusive accommodation\n </p>\n </div>\n <div className={styles.modalContainerLeftFeature}>\n <Star style={{ width: \"62px\" }} />\n <p className={styles.modalContainerLeftFeatureText}>\n Private transfers from the arrival in the\n destination to your hotel and vv\n </p>\n </div>\n <div className={styles.modalContainerLeftFeature}>\n <Star />\n <p className={styles.modalContainerLeftFeatureText}>\n Private experiences\n </p>\n </div>\n <div className={styles.modalContainerLeftFeature}>\n <Star />\n <p className={styles.modalContainerLeftFeatureText}>\n Pre & post sale support\n </p>\n </div>\n <div className={styles.modalContainerLeftFeature}>\n <Star />\n <p className={styles.modalContainerLeftFeatureText}>\n Italian Experts\n </p>\n </div>\n </div>\n <div className={styles.modalContainerRight}>\n <h1 className={styles.modalContainerRightTitle}>\n These dates are also available in our Premium version!\n </h1>\n <p className={styles.modalContainerRightText}>\n With an additional €{differencePrice} you can upgrade\n your Experience with luxury hotels, private outings and\n premium assistance.\n </p>\n <div>\n <Btn\n fullWith\n onClick={() => {\n onBuy(true);\n }}\n >\n Choose Premium\n </Btn>\n <p\n className={styles.modalContainerRightUnderelineText}\n onClick={() => onBuy(false)}\n >\n Continue with Quality\n </p>\n </div>\n </div>\n </div>\n </InfoModalContainer>\n );\n};\n\nexport default InfoModalPremium;\n","import React, { useMemo } from \"react\";\nimport stylesCommon from \"@/styles/detail/DetailBookingSidebar/DetailBookingConfigurator.module.scss\";\nimport { InfoType } from \"@/models/common/enums\";\nimport { ExclusionDaysResponseTo, SlotsReadableTO } from \"@/models/detail\";\nimport moment from \"moment\";\nimport RangeDatePicker from \"../../addToCart/datepicker/RangeDatePicker\";\n\nconst DatePickerSectionDetail = ({\n toggleInfoModal,\n days,\n isPremium,\n daysExcluded,\n discountedDates,\n startDate,\n slots,\n setStartDate,\n setStartDateView,\n click,\n setClick,\n startDateView,\n}: {\n toggleInfoModal: (info: InfoType) => void;\n days: number;\n isPremium: boolean;\n daysExcluded: ExclusionDaysResponseTo | undefined;\n discountedDates: string[];\n startDate: Date | null;\n startDateView: Date | null;\n slots: SlotsReadableTO[];\n setStartDate: React.Dispatch<React.SetStateAction<Date>>;\n setStartDateView: React.Dispatch<React.SetStateAction<Date | null>>;\n click: boolean;\n setClick: React.Dispatch<React.SetStateAction<boolean>>;\n}) => {\n const selectedExclusions = useMemo(\n () =>\n (isPremium\n ? daysExcluded?.toExcludePremium\n : daysExcluded?.toExcludeQuality) ?? [],\n [daysExcluded, isPremium]\n );\n\n const slotsLastDate = useMemo(\n () => moment.max(slots.map(slot => moment(slot.endDate))).toDate(),\n [slots]\n );\n\n // useEffect(() => {\n // const selectedDateParam = router.query;\n\n // if (selectedDateParam.selectedDate === undefined) {\n // console.log(\"entrraaaaaaaaaaaaaaaaaaa\");\n // setStartDate(\n // getFirstUsefulDate(\n // isPremium\n // ? daysExcluded?.toExcludePremium\n // : daysExcluded?.toExcludeQuality\n // )\n // );\n // }\n // }, []);\n\n return (\n <>\n <div className=\"d-flex justify-content-between align-items-center\">\n <h3 className={stylesCommon.configuratorTitle}>Arrival date</h3>\n </div>\n <p className={stylesCommon.configuratorDescription}>\n By selecting your arrival day, the departure date will be\n automatically set according to the durantion of your vacation.\n If the system doesn't let you pick a date, that means that\n our journeys are not available from that day.\n </p>\n <RangeDatePicker\n excludeDates={selectedExclusions}\n discountedDates={discountedDates}\n rangeLength={+days}\n selectedDate={startDate}\n lastDate={slotsLastDate}\n setSelectedDate={setStartDate}\n click={click}\n startDateView={startDateView}\n setStartDateView={setStartDateView}\n setClick={setClick}\n />\n <p\n className={`${stylesCommon.configuratorDescription} text-center mb-0`}\n >\n Do you wish to spend some extra time in Italy?\n </p>\n <div className=\"d-flex justify-content-center align-items-center\">\n <span\n className={`${stylesCommon.configuratorDescription} text-center text-decoration-underline mt-0`}\n onClick={() => toggleInfoModal(InfoType.EXTRA_NIGHTS)}\n >\n Here's how to do it\n </span>\n </div>\n </>\n );\n};\n\nexport default DatePickerSectionDetail;\n","import React, { useState } from \"react\";\nimport stylesCommon from \"@/styles/detail/DetailBookingSidebar/DetailBookingConfigurator.module.scss\";\nimport generalSvg from \"@/utils/svg-icon/general\";\nimport socialAndBrandSvg from \"@/utils/svg-icon/socialAndBrand\";\nimport styles from \"@/styles/detail/DetailBookingSidebar/ChooseExperienceSectionDetail.module.scss\";\nimport { useIsSM } from \"@/utils/hooks/useWindowSizes\";\n\nconst ChooseExperienceSectionDetail = ({\n isPremium,\n setIsPremium,\n pricePremium,\n priceQuality,\n}: {\n isPremium: boolean;\n setIsPremium: (el: boolean) => void;\n pricePremium: number;\n priceQuality: number;\n}) => {\n const { Star } = generalSvg;\n const { SketchLine } = socialAndBrandSvg;\n const isSM = useIsSM();\n\n const differencePrice =\n pricePremium - priceQuality >= 0\n ? pricePremium - priceQuality\n : priceQuality - pricePremium;\n\n const [showPrice, setShowPrice] = useState<\"quality\" | \"premium\" | null>(\n null\n );\n\n return (\n <>\n <div className=\"d-flex justify-content-between align-items-center\">\n <h3 className={stylesCommon.configuratorTitle}>\n Choose your Experience\n </h3>\n </div>\n <p className={stylesCommon.configuratorDescription}>\n We both offer a Quality and Premium version for our trips. Based\n on your preference, choose your favorite formula.\n </p>\n <div className={styles.buttonContainer}>\n <div\n className={\n !isPremium\n ? styles.buttonActiveQuality\n : styles.buttonDefaultQuality\n }\n onClick={() => {\n setIsPremium(false);\n const url = new URL(window.location.href);\n url.searchParams.set(\n \"isPremium\",\n !isPremium as unknown as string\n );\n window.history.replaceState(null, \"\", url);\n setShowPrice(null);\n }}\n onMouseEnter={() => isPremium && setShowPrice(\"quality\")}\n onMouseLeave={() => isPremium && setShowPrice(null)}\n >\n {(showPrice === \"quality\" || isSM) && (\n <span className={styles.differencePriceQuality}>\n {pricePremium - priceQuality >= 0 ? \"-\" : \"+\"}€\n {differencePrice.toFixed(2)}\n </span>\n )}\n <span className=\"me-2\">Quality</span>\n <div className={styles.iconQuality}>\n <Star />\n </div>\n </div>\n <div\n className={\n isPremium\n ? styles.buttonActivePremium\n : styles.buttonDefaultPremium\n }\n onClick={() => {\n setIsPremium(true);\n const url = new URL(window.location.href);\n url.searchParams.set(\n \"isPremium\",\n !isPremium as unknown as string\n );\n window.history.replaceState(null, \"\", url);\n setShowPrice(null);\n }}\n onMouseEnter={() => !isPremium && setShowPrice(\"premium\")}\n onMouseLeave={() => !isPremium && setShowPrice(null)}\n >\n {(showPrice === \"premium\" || isSM) && (\n <span className={styles.differencePricePremium}>\n {pricePremium - priceQuality >= 0 ? \"+\" : \"-\"}€\n {differencePrice.toFixed(2)}\n </span>\n )}\n <span className=\"me-2\">Premium</span>\n <div className={styles.iconPremium}>\n <SketchLine />\n </div>\n </div>\n </div>\n </>\n );\n};\n\nexport default ChooseExperienceSectionDetail;\n","import ButtonCta from \"@/components/common/ButtonCta\";\nimport {\n getOriginalAmount,\n getTourId,\n} from \"@/store/checkout/selector-checkout\";\nimport { useStore } from \"@/store/index\";\nimport { verifyCoupon } from \"@/utils/queries\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport React from \"react\";\nimport styles from \"@/styles/checkout/SummaryCheckoutCard.module.scss\";\n\nconst DiscountSectionDetail = () => {\n const dispatchCommon = useStore(state => state.dispatchCommon);\n const dispatch = useStore(state => state.dispatchCheckout);\n const setErrorMsg = useStore(state => state.setErrorMsg);\n const originalAmount = useStore(getOriginalAmount);\n const tourId = useStore(getTourId);\n // eslint-disable-next-line no-underscore-dangle\n const userId = useStore(state => state.userState.userDetail._id);\n\n const { mutate: checkCoupon } = useMutation(verifyCoupon, {\n onSettled: () => {\n dispatchCommon({ type: \"SET_LOADER_PAGE\", payload: false });\n },\n onSuccess: ({ coupon, discountedAmount }) => {\n // Success actions\n dispatch({\n type: \"SET_COUPON\",\n payload: coupon,\n });\n dispatch({\n type: \"SET_TOTAL_AMOUNT\",\n payload: discountedAmount,\n });\n },\n onError: err => {\n // Error actions\n setErrorMsg(err as never);\n },\n });\n\n if (!userId) {\n return null;\n }\n\n return (\n <ButtonCta\n validator={value => !!value.trim()}\n className={`${styles.inputDiscountField} mb-3`}\n onClick={(value: string) => {\n dispatchCommon({\n type: \"SET_LOADER_PAGE\",\n payload: true,\n });\n checkCoupon({\n code: value,\n originalAmount,\n tourId,\n });\n }}\n placeholder=\"Enter your coupon code\"\n isSmall\n />\n );\n};\n\nexport default DiscountSectionDetail;\n","import React, { useMemo } from \"react\";\nimport stylesCommon from \"@/styles/detail/DetailBookingSidebar/DetailBookingConfigurator.module.scss\";\nimport moment from \"moment\";\nimport { useStore } from \"@/store/index\";\nimport { MDBCol, MDBRow } from \"mdb-react-ui-kit\";\nimport styles from \"@/styles/detail/DetailBookingSidebar/PackageConfigurationSectionDetail.module.scss\";\nimport DiscountSectionDetail from \"./DiscountSectionDetail\";\n\nconst PackageConfigurationSectionDetail = ({\n isPremium,\n days,\n startDate,\n}: // price,\n{\n isPremium: boolean;\n days: number;\n startDate: Date | null;\n // price: number;\n}) => {\n // const dispatchCheckout = useStore(state => state.dispatchCheckout);\n const formatPattern = \"MMMM D, YYYY\";\n\n const isPets = useStore(state => state.checkoutState.orderData.pets);\n\n const firstDate = useMemo(\n () => moment(startDate).format(formatPattern).split(\",\"),\n [startDate]\n );\n const getEndDate = () => {\n return moment(startDate)\n .add(days - 1, \"days\")\n .format(formatPattern)\n .split(\",\");\n };\n\n const rooms = useStore(state => state.checkoutState.orderData.rooms);\n\n const calculateAdults = () => {\n return rooms.reduce((previousValue, currentValue) => {\n return previousValue + currentValue.adults;\n }, 0);\n };\n\n const calculateToddlers = () => {\n return rooms.reduce((previousValue, currentValue) => {\n return previousValue + currentValue.newborns;\n }, 0);\n };\n\n const calculateChildrens = () => {\n return rooms.reduce((previousValue, currentValue) => {\n return previousValue + (currentValue.children?.length ?? 0);\n }, 0);\n };\n\n const languageSelected = useStore(\n state => state.checkoutState.languageSelected\n );\n const clickLanguage = useStore(state => state.checkoutState.clickLanguage);\n\n const valueCoupon = useStore(\n state => state.checkoutState.orderData.coupon?.value\n );\n const clickConfirmDate = useStore(\n state => state.checkoutState.clickConfirmDate\n );\n\n return (\n <>\n <div className=\"d-flex justify-content-between align-items-center\">\n <h3 className={stylesCommon.configuratorTitle}>\n Your package configuration\n </h3>\n </div>\n <ul>\n <li>\n <p\n className={`${stylesCommon.configuratorDescription} mt-0 mb-0`}\n >\n {isPremium ? \"Premium\" : \"Quality\"} package\n </p>\n </li>\n <li>\n <p\n className={`${stylesCommon.configuratorDescription} mt-0 mb-0`}\n >\n {days} {days > 1 ? \"Days\" : \"Day\"}, {days - 1}{\" \"}\n {days - 1 > 1 ? \"nights\" : \"night\"}\n </p>\n </li>\n {firstDate.length > 0 &&\n firstDate[0] !== \"Invalid date\" &&\n clickConfirmDate && (\n <li>\n <p\n className={`${stylesCommon.configuratorDescription} mt-0 mb-0`}\n >\n Arrival date on {`${firstDate.at(0)}`}, Return\n on {`${getEndDate().at(0)}`}\n </p>\n </li>\n )}\n <li>\n <p\n className={`${stylesCommon.configuratorDescription} mt-0 mb-0`}\n >\n {rooms.length} {rooms.length > 1 ? \"Rooms\" : \"Room\"},\n {calculateAdults() > 0 && ` ${calculateAdults()}`}\n {calculateAdults() > 0\n ? calculateAdults() === 1\n ? \" Adult\"\n : \" Adults\"\n : \"\"}\n {calculateChildrens() > 0 &&\n `, ${calculateChildrens()}`}\n {calculateChildrens() > 0\n ? calculateChildrens() === 1\n ? \" Child\"\n : \" Children\"\n : \"\"}\n {calculateToddlers() > 0 && `, ${calculateToddlers()}`}\n {calculateToddlers() >= 1 ? \" Toddlers\" : \"\"}\n {isPets ? \", travelling with pets\" : \"\"}\n </p>\n </li>\n {languageSelected && clickLanguage && (\n <li>\n <p\n className={`${stylesCommon.configuratorDescription} mt-0 mb-0 text-capitalize`}\n >\n {languageSelected} Language\n </p>\n </li>\n )}\n </ul>\n <DiscountSectionDetail />\n {/* <MDBRow className={styles.packagePriceRow}>\n <MDBCol size={4}>\n <p className={styles.packagePriceTitle}>Package price</p>\n </MDBCol>\n <MDBCol size={8}>\n <p className={styles.packagePricePrice}>\n {price.toFixed(2)} €\n </p>\n </MDBCol>\n </MDBRow> */}\n {(valueCoupon ?? 0) > 0 && (\n <MDBRow className={styles.packagePriceRow}>\n <MDBCol size={4}>\n <p className={styles.packagePriceTitle}>\n Coupon discount\n </p>\n </MDBCol>\n <MDBCol size={8}>\n <p className={styles.packagePricePrice}>\n - {valueCoupon} €\n </p>\n </MDBCol>\n </MDBRow>\n )}\n\n {/* <MDBRow className={styles.totalRow}>\n <MDBCol size={4}>\n <p className={styles.total}>\n Total <span className={styles.eur}>(EUR)</span>\n </p>\n </MDBCol>\n <MDBCol size={8}>\n <p className={styles.TotalPrice}>\n {Number(totalAmount).toFixed(2)}€\n </p>\n </MDBCol>\n </MDBRow> */}\n </>\n );\n};\n\nexport default PackageConfigurationSectionDetail;\n","const ConvertCurrentCurrency = ({\n className,\n price,\n}: {\n price: string;\n className?: string;\n}) => (\n <p className={`${className} text-decoration-underline text-start pointer`}>\n <a\n href={`https://www.oanda.com/currency-converter/?from=EUR&to=USD&amount=${price}`}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"PIColorGray PIfontRegular\"\n >\n Convert current currency (€)\n </a>\n </p>\n);\n\nexport default ConvertCurrentCurrency;\n","import { FC } from \"react\";\nimport { MDBCol, MDBRow } from \"mdb-react-ui-kit\";\nimport { transformPrice } from \"@/utils/common\";\nimport { useStore } from \"@/store/index\";\nimport styles from \"../../styles/detail/DetailAddToCart.module.scss\";\nimport InfoCircleLine from \"../../public/custom-icons/icons-2/icons/Info Circle/Line.svg\";\nimport ConvertCurrentCurrency from \"../common/ConvertCurrentCurrency\";\n\nconst PackageDetailAddToCartBoxInfo: FC<{\n price: number;\n onClickInfo: () => void;\n showPrice?: boolean;\n}> = ({ price, onClickInfo, showPrice = true }) => {\n const priceFixed = price as unknown as string;\n const { clickConfirmDate } = useStore(state => state.checkoutState);\n\n return (\n <MDBRow\n className={`${styles.priceContainer} ${styles.addToCartBoxInfoText} m-0 p-0`}\n >\n <MDBCol\n className=\"p-0 d-flex justify-content-center\"\n size=\"6\"\n center\n >\n <MDBRow className=\"d-inline-flex\">\n <MDBCol className=\"text-center\">\n <span className={`${styles.addToCartBoxPrice} pe-0`}>\n {showPrice && clickConfirmDate\n ? transformPrice(price)\n : \"-\"}\n €\n </span>\n <ConvertCurrentCurrency\n className=\"text-center\"\n price={priceFixed}\n />\n </MDBCol>\n </MDBRow>\n </MDBCol>\n\n <MDBCol size=\"6\" className=\"border-start border-2 ps-4 d-flex\">\n <div className=\"d-flex justify-content-center flex-column\">\n <div\n className={`${styles.paddingAddToCartBoxRightText} text-center p-0`}\n >\n Prices may vary based on tariffs and seasonal changes.\n </div>\n\n <div\n style={{ cursor: \"pointer\" }}\n onClick={onClickInfo}\n className={`${styles.showMore} cursor-pointer ps-xxl-1 align-items-center text-decoration-underline d-flex justify-content-center`}\n >\n show more{\" \"}\n <div className=\"pe-auto d-inline-flex\">\n <div className={`${styles.infoIcon} p-0`}>\n <InfoCircleLine />\n </div>\n </div>\n </div>\n </div>\n </MDBCol>\n </MDBRow>\n );\n};\n\nexport default PackageDetailAddToCartBoxInfo;\n","import React from \"react\";\nimport stylesCommon from \"@/styles/detail/DetailBookingSidebar/DetailBookingConfigurator.module.scss\";\nimport { InfoType } from \"@/models/common/enums\";\nimport PackageDetailAddToCartBoxInfo from \"../../PackageDetailAddToCartBoxInfo\";\n\nconst FinalPriceSectionDetail = ({\n price,\n toggleInfoModal,\n showPrice = true,\n}: {\n price: number;\n toggleInfoModal: (info: InfoType) => void;\n showPrice?: boolean;\n}) => {\n return (\n <>\n <div className=\"d-flex justify-content-between align-items-center mt-4 mb-4\">\n <h3 className={stylesCommon.configuratorTitle}>\n Your package price\n </h3>\n </div>\n <PackageDetailAddToCartBoxInfo\n showPrice={showPrice}\n price={price}\n onClickInfo={() => toggleInfoModal(InfoType.PRICE)}\n />\n </>\n );\n};\n\nexport default FinalPriceSectionDetail;\n","import { InfoType } from \"@/models/common/enums\";\nimport shoppingSvg from \"@/utils/svg-icon/shopping\";\nimport { MDBBtn } from \"mdb-react-ui-kit\";\nimport React, { useState } from \"react\";\nimport stylesAddToCart from \"@/styles/detail/DetailAddToCart.module.scss\";\nimport styles from \"@/styles/detail/DetailBookingSidebar/PackageConfigurationSectionDetail.module.scss\";\nimport { useStore } from \"@/store/index\";\n\nconst ButtonBuySectionDetail = ({\n errorGuest,\n toggleInfoModal,\n clickDate,\n setShowModalPremium,\n onBuy,\n isPremium,\n}: {\n errorGuest: number;\n toggleInfoModal: (info: InfoType) => void;\n clickDate: boolean;\n setShowModalPremium: boolean;\n onBuy: (isPremiumFlag: boolean) => void;\n isPremium: boolean;\n}) => {\n const [click, setClick] = useState<boolean>(false);\n const { clickConfirmDate } = useStore(state => state.checkoutState);\n const languageSelected = useStore(\n state => state.checkoutState.languageSelected\n );\n const clickLanguage = useStore(state => state.checkoutState.clickLanguage);\n const { ShoppingBag } = shoppingSvg;\n return (\n <>\n <div className={styles.container}>\n {errorGuest > 0 && click && clickDate && (\n <div className={styles.popoverContainer}>\n <div className={styles.popoverContainerArrow} />\n <span className={styles.popoverContainerText}>\n Please fix your room configuration\n </span>\n </div>\n )}\n {!clickDate && click && (\n <div className={styles.popoverContainer}>\n <div className={styles.popoverContainerArrow} />\n <span className={styles.popoverContainerText}>\n Please select your arrival date\n </span>\n </div>\n )}\n {!languageSelected &&\n click &&\n clickDate &&\n errorGuest === 0 && (\n <div className={styles.popoverContainer}>\n <div className={styles.popoverContainerArrow} />\n <span className={styles.popoverContainerText}>\n Please select your tour language\n </span>\n </div>\n )}\n </div>\n <div className={stylesAddToCart.buttonBuySection}>\n <MDBBtn\n className={\n errorGuest > 0 ||\n !clickDate ||\n !languageSelected ||\n !clickLanguage ||\n !clickConfirmDate\n ? `${stylesAddToCart.addToCartButtonDisabled}`\n : `${stylesAddToCart.addToCartButton}`\n }\n onClick={() => {\n if (\n errorGuest === 0 &&\n clickDate &&\n languageSelected &&\n clickConfirmDate &&\n clickLanguage\n ) {\n if (setShowModalPremium) {\n toggleInfoModal(InfoType.MODAL_PREMIUM);\n } else {\n onBuy(isPremium);\n }\n }\n }}\n onMouseEnter={() => {\n if (!clickDate) setClick(true);\n else if (errorGuest > 0)\n setClick(errorGuest > 0 && !click);\n else setClick(!languageSelected);\n }}\n onMouseLeave={() => setClick(false)}\n >\n Reserve\n <div className=\"ps-3 pt-1\">\n <ShoppingBag />\n </div>\n </MDBBtn>\n <p style={{ color: \"darkgrey\", fontSize: \"13px\" }}>\n {\" \"}\n You won’t be charged yet{\" \"}\n </p>\n </div>\n </>\n );\n};\n\nexport default ButtonBuySectionDetail;\n","import React, { useEffect, useMemo, useState } from \"react\";\nimport styles from \"@/styles/detail/DetailBookingSidebar/DetailBookingConfigurator.module.scss\";\nimport {\n ENUM_ECCESSO,\n ERoomType,\n ETourLanguage,\n ETourOption,\n ETypePackage,\n InfoType,\n} from \"@/models/common/enums\";\nimport InfoModalGeneral from \"@/components/common/info/InfoModalGeneral\";\nimport {\n cancellationPolicyContent,\n dateContent,\n extraNightsContent,\n languageContent,\n nightsContent,\n priceContent,\n qualityPremiumContent,\n} from \"@/utils/mockData/infoMock\";\nimport InfoModalDouble from \"@/components/common/info/InfoModalDouble\";\nimport InfoModalVideo from \"@/components/common/info/InfoModalVideo\";\nimport moment from \"moment\";\nimport { useQuery } from \"@tanstack/react-query\";\nimport { getExcludedDaysSession } from \"@/utils/queries\";\nimport { SlotsReadableTO } from \"@/models/detail\";\nimport Link from \"next/link\";\nimport { useStore } from \"@/store/index\";\nimport { IRoom, ISaveCheckoutData } from \"@/models/checkout\";\nimport InfoModalPremium from \"@/components/common/info/InfoModalPremium\";\nimport { useRouter } from \"next/router\";\nimport useCalculatePrice from \"@/utils/hooks/useCalculatePrice\";\n// import LanguageSectionDetail from \"./LanguageSectionDetail\";\nimport DatePickerSectionDetail from \"./DatePickerSectionDetail\";\nimport RoomTravellersSectionDetail from \"./RoomTravellersSectionDetail\";\nimport ChooseExperienceSectionDetail from \"./ChooseExperienceSectionDetail\";\nimport PackageConfigurationSectionDetail from \"./PackageConfigurationSectionDetail\";\nimport FinalPriceSectionDetail from \"./FinalPriceSectionDetail\";\nimport ButtonBuySectionDetail from \"./ButtonBuySectionDetail\";\n\nconst DetailBookingConfigurator = ({\n isPremium,\n setIsPremium,\n slots,\n tourId,\n days,\n typePackage,\n pricePremium,\n priceQuality,\n slotsPremium,\n slotsQuality,\n languages,\n}: {\n tourId: string;\n setIsPremium: (el: boolean) => void;\n isPremium: boolean;\n slots: SlotsReadableTO[];\n days: string;\n typePackage: ETypePackage;\n priceQuality: number;\n pricePremium: number;\n slotsPremium: SlotsReadableTO[];\n slotsQuality: SlotsReadableTO[];\n languages: ETourLanguage[];\n}) => {\n // const { PlayLine } = mediaControlSvg;\n\n /*\n IMPORTANT\n E' RICHIESTA DI PLAYITALY DI AVERE SELEZIONATO SEMPRE E SOLO INGLESE COME LINGUA DEL TOUR\n E' STATA INIBITA LA SEZIONE LanguageSectionDetail\n */\n\n const router = useRouter();\n\n const [infoContent, setInfoContent] = useState<InfoType>(InfoType.PRICE);\n const [clickDate, setClickDate] = useState<boolean>(\n router.query.clickDate\n ? JSON.parse(router.query.clickDate as string)\n : false\n );\n // const [clickLanguage, setClickLanguage] = useState<boolean>(\n // router.query.clickLanguage\n // ? JSON.parse(router.query.clickLanguage as string)\n // : false\n // );\n const [eccessoList, setEccessoList] = useState<ENUM_ECCESSO[]>(\n router.query.eccessoList\n ? JSON.parse(router.query.eccessoList as string)\n : []\n );\n const [pets, setPets] = useState<boolean>(\n router.query.pets ? JSON.parse(router.query.pets as string) : false\n );\n const [show, setShow] = useState(false);\n const dispatchCheckout = useStore(state => state.dispatchCheckout);\n const discountAmount = useStore(\n state => state.checkoutState.orderData.coupon?.value\n );\n\n const { data: daysExcluded, refetch } = useQuery({\n queryKey: [\"exclusionDays\", tourId],\n queryFn: () => getExcludedDaysSession(tourId),\n });\n\n const toggleInfoModal = (info: InfoType) => {\n if (info === InfoType.DATE) refetch();\n setInfoContent(info);\n setShow(true);\n };\n\n const dateFormat = \"YYYY-MM-DD\";\n\n const getFirstUsefulDate = (\n excludedDates: string[] | undefined,\n date?: Date\n ) => {\n const currentDate = moment();\n const found = excludedDates?.find(\n element => element === currentDate.format(dateFormat)\n );\n if (found) {\n const sortedExcludedDates = excludedDates?.sort((a, b) => {\n return moment(a).diff(b);\n });\n const excludeDate = sortedExcludedDates?.find(\n (currentElement, index, arr) =>\n !moment(currentElement)\n .add(1, \"day\")\n .isSame(arr.at(index + 1)) &&\n moment(currentElement)\n .add(1, \"day\")\n .isAfter(date ?? currentDate.toDate())\n );\n return moment(excludeDate).add(1, \"day\").toDate();\n }\n return currentDate.toDate();\n };\n\n const [startDate, setStartDate] = useState<Date>(\n router.query.clickDate && router.query.selectedDate\n ? moment(router.query.selectedDate as string, \"DD/MM/YYYY\").toDate()\n : getFirstUsefulDate(\n isPremium\n ? daysExcluded?.toExcludePremium\n : daysExcluded?.toExcludeQuality\n )\n );\n\n const [startDateView, setStartDateView] = useState<Date | null>(\n router.query.clickDate && router.query.selectedDate\n ? moment(router.query.selectedDate as string, \"DD/MM/YYYY\").toDate()\n : null\n );\n\n const { overrideDate, discountedDates } = useMemo(() => {\n const override =\n (isPremium\n ? daysExcluded?.overridePremium\n : daysExcluded?.overrideQuality) || [];\n const discounted = override.reduce((acc, value) => {\n return value.discount ? [...acc, value.day] : acc;\n }, [] as string[]);\n return { overrideDate: override, discountedDates: discounted };\n }, [daysExcluded, isPremium]);\n\n const selectedSlot = useMemo(() => {\n return slots.find(slot =>\n moment(moment(startDate).format(dateFormat)).isBetween(\n moment(slot.startDate),\n moment(slot.endDate),\n undefined,\n \"[]\"\n )\n );\n }, [slots, startDate]);\n\n const roomStore = useStore(state => state.checkoutState.orderData.rooms);\n\n const overrideDateFind = useMemo(() => {\n const selectedOverride = overrideDate.find(value =>\n moment(startDate).isSame(value.day)\n );\n return selectedOverride?.roomsOverride ?? [];\n }, [overrideDate, startDate]);\n\n const calculateSelectedSlot = (item: IRoom) => {\n const idxSlot =\n item.type === ERoomType.SINGLE\n ? 0\n : item.type === ERoomType.DOUBLE\n ? 1\n : 2;\n\n if (overrideDateFind.length > 0) {\n return overrideDateFind.at(idxSlot);\n }\n\n return selectedSlot?.rooms.at(idxSlot);\n };\n\n const [errorGuest, setErrorGuest] = useState<number>(0);\n\n const totalAmount = useStore(\n state => state.checkoutState.orderData.totalAmount\n );\n\n const showModalPremium = useMemo(() => {\n if (!isPremium && startDate) {\n const selectedSlotPremium = slotsPremium.find(slot =>\n moment(moment(startDate).format(dateFormat)).isBetween(\n moment(slot.startDate),\n moment(slot.endDate),\n undefined,\n \"[]\"\n )\n );\n\n return !!selectedSlotPremium;\n }\n return false;\n }, [isPremium, slotsPremium, startDate]);\n\n const rooms = useStore(state => state.checkoutState.orderData.rooms);\n const { languageSelected } = useStore(state => state.checkoutState);\n const setErrorMessage = useStore(state => state.setErrorMsg);\n const dispatchCommon = useStore(state => state.dispatchCommon);\n\n const priceTotal = useCalculatePrice({\n isPremium,\n rooms,\n slots,\n startDate: startDate ? startDate.toDateString() : \"\",\n tourId,\n });\n\n const onBuy = (isPremiumFlag: boolean) => {\n if (selectedSlot) {\n dispatchCommon({ type: \"RESET_COMMON\" });\n\n if (isPremiumFlag) setIsPremium(true);\n\n const queryData: Partial<ISaveCheckoutData> = {\n tourId,\n amount: priceTotal.price,\n date: startDate?.toISOString(),\n rooms: rooms?.map(room => ({\n ...room,\n })),\n option: isPremiumFlag\n ? ETourOption.PREMIUM\n : ETourOption.QUALITY,\n language: languageSelected,\n pets,\n eccessoList,\n };\n\n router.push(\n {\n pathname: \"/checkout\",\n query: {\n checkoutData: JSON.stringify(queryData),\n },\n },\n undefined,\n { shallow: true }\n );\n } else {\n setErrorMessage({\n message: \"Tour not available for the selected date\",\n });\n }\n };\n\n const modalsInfo = {\n [InfoType.PRICE]: (\n <InfoModalGeneral\n content={priceContent}\n show={show}\n setShow={setShow}\n />\n ),\n [InfoType.DATE]: (\n <InfoModalGeneral\n content={dateContent}\n show={show}\n setShow={setShow}\n />\n ),\n [InfoType.NIGHTS]: (\n <InfoModalGeneral\n content={nightsContent}\n show={show}\n setShow={setShow}\n />\n ),\n [InfoType.LANGUAGE]: (\n <InfoModalGeneral\n content={languageContent}\n show={show}\n setShow={setShow}\n />\n ),\n [InfoType.EXTRA_NIGHTS]: (\n <InfoModalGeneral\n content={extraNightsContent}\n show={show}\n setShow={setShow}\n />\n ),\n [InfoType.CANCELLATION_POLICY]: (\n <InfoModalGeneral\n content={cancellationPolicyContent}\n show={show}\n setShow={setShow}\n />\n ),\n [InfoType.TOURTYPE]: (\n <InfoModalDouble\n content={qualityPremiumContent}\n show={show}\n setShow={setShow}\n />\n ),\n [InfoType.VIDEO_JOURNEY]: (\n <InfoModalVideo\n content=\"/video/video.mp4\"\n show={show}\n setShow={setShow}\n />\n ),\n [InfoType.MODAL_PREMIUM]: (\n <InfoModalPremium\n show={show}\n setShow={setShow}\n onBuy={onBuy}\n pricePremium={pricePremium}\n priceQuality={priceQuality}\n />\n ),\n };\n\n const priceQualityUse = useCalculatePrice({\n isPremium: false,\n rooms,\n slots: slotsQuality,\n startDate: startDate ? startDate.toDateString() : \"\",\n tourId,\n });\n\n const pricePremiumUse = useCalculatePrice({\n isPremium: true,\n rooms,\n slots: slotsPremium,\n startDate: startDate ? startDate.toDateString() : \"\",\n tourId,\n });\n\n useEffect(() => {\n dispatchCheckout({\n type: \"UPDATE_ORDER_DATA\",\n payload: {\n originalAmount: priceTotal.price,\n totalAmount: priceTotal.price - (discountAmount || 0),\n },\n });\n dispatchCheckout({\n type: \"SET_PRICE_ROOM\",\n payload: priceTotal.roomCurrent.map(res => ({\n grossPrice: res?.grossPrice ?? \"\",\n type: res?.type ?? \"\",\n })),\n });\n }, [priceTotal.price, discountAmount, dispatchCheckout]);\n\n useEffect(() => {\n console.log(\"languages\", languages);\n const url = new URL(window.location.href);\n url.searchParams.set(\"clickLanguage\", true as unknown as string);\n window.history.replaceState(null, \"\", url);\n });\n return (\n <div\n className={`${styles.configurator} ${\n isPremium\n ? `${styles.configuratorBorderPremium}`\n : `${styles.configuratorBorderQuality}`\n }`}\n >\n {modalsInfo[infoContent]}\n {/* <h3 className={styles.configuratorTitle}>Customize your Journey</h3>\n <p className={styles.configuratorDescription}>\n We're here to make your booking experience seamless. For\n extra help, please follow our easy guide.\n </p>\n <MDBBtn\n className={styles.configuratorWatchTutorialButton}\n onClick={() => toggleInfoModal(InfoType.VIDEO_JOURNEY)}\n >\n <span>Watch tutorial</span>\n <div className=\"ps-3 pt-1\">\n <PlayLine />\n </div>\n </MDBBtn>\n <div className={styles.configuratorDivider} /> */}\n {/* <LanguageSectionDetail\n languages={languages}\n selectedSlot={selectedSlot}\n overrideDate={overrideDate}\n startDate={startDate}\n clickLanguage={clickLanguage}\n setClickLanguage={setClickLanguage}\n /> */}\n {/* <div className={styles.configuratorDivider} /> */}\n <DatePickerSectionDetail\n toggleInfoModal={toggleInfoModal}\n days={+days}\n daysExcluded={daysExcluded}\n discountedDates={discountedDates}\n isPremium={isPremium}\n slots={slots}\n startDate={startDate}\n setStartDate={setStartDate}\n setStartDateView={setStartDateView}\n startDateView={startDateView}\n click={clickDate}\n setClick={setClickDate}\n />\n <div className={styles.configuratorDivider} />\n <RoomTravellersSectionDetail\n rooms={roomStore}\n calculateSelectedSlot={calculateSelectedSlot}\n errorGuest={errorGuest}\n setErrorGuest={setErrorGuest}\n pets={pets}\n setPets={setPets}\n eccessoList={eccessoList}\n setEccessoList={setEccessoList}\n />\n {typePackage === ETypePackage.QUALITY_AND_PREMIUM && (\n <>\n <div className={styles.configuratorDivider} />\n <ChooseExperienceSectionDetail\n isPremium={isPremium}\n setIsPremium={setIsPremium}\n pricePremium={pricePremiumUse.price}\n priceQuality={priceQualityUse.price}\n />\n </>\n )}\n <div className={styles.configuratorDivider} />\n <PackageConfigurationSectionDetail\n isPremium={isPremium}\n days={+days}\n startDate={startDateView}\n // price={calculatePrice}\n />\n <div className={styles.configuratorDivider} />\n <FinalPriceSectionDetail\n price={totalAmount}\n toggleInfoModal={toggleInfoModal}\n showPrice={clickDate}\n />\n <div className={styles.configuratorDivider} />\n <ButtonBuySectionDetail\n errorGuest={errorGuest}\n toggleInfoModal={toggleInfoModal}\n clickDate={clickDate}\n setShowModalPremium={showModalPremium}\n onBuy={onBuy}\n isPremium={isPremium}\n />\n\n <h4\n className={styles.configuratorCancellationPolicyText}\n onClick={() => toggleInfoModal(InfoType.CANCELLATION_POLICY)}\n style={{ color: \"red\" }}\n >\n Free cancellation policy available\n </h4>\n <div className={styles.configuratorFaqContainer}>\n <Link\n className={styles.configuratorFaqText}\n href=\"/faq\"\n target=\"_blank\"\n style={{ textDecoration: \"underline\" }}\n >\n FAQ\n </Link>\n </div>\n </div>\n );\n};\n\nexport default DetailBookingConfigurator;\n","import { MDBCol } from \"mdb-react-ui-kit\";\nimport { FC, useEffect, useState } from \"react\";\nimport DetailFixedBarMobile from \"@/components/detail/DetailFixedBarMobile\";\nimport useSticky from \"@/hooks/useSticky\";\nimport ModalCartContainer from \"@/components/detail/addToCart/modal/ModalCartContainer\";\nimport { TourReadableTO } from \"@/models/detail\";\nimport styles from \"@/styles/detail/DetailBooking.module.scss\";\nimport { useStore } from \"@/store/index\";\nimport {\n EDetailSection,\n ETourLanguage,\n ETypePackage,\n} from \"@/models/common/enums\";\nimport DetailBookingConfigurator from \"./DetailBookingSidebar/DetailBookingConfigurator\";\nimport { RequestAQuoteForm } from \"./RequestAQuoteForm\";\n\nconst PackageDetailBookingMobile: FC<{\n packageDetail: TourReadableTO;\n isPremium: boolean;\n isOnScreen: boolean;\n price: number;\n // setPrice: Dispatch<SetStateAction<number>>;\n setIsPremium: (el: boolean) => void;\n // setIsPromo: (el: boolean) => void;\n offset: number;\n days: string;\n typePackage: ETypePackage;\n pricePremium: number;\n priceQuality: number;\n packagePremium: TourReadableTO;\n packageQuality: TourReadableTO;\n languages: ETourLanguage[];\n isRequestAQuote?: boolean;\n}> = ({\n packageDetail,\n isPremium,\n isOnScreen,\n price,\n // setPrice,\n setIsPremium,\n offset,\n // setIsPromo,\n days,\n typePackage,\n pricePremium,\n priceQuality,\n packagePremium,\n packageQuality,\n languages,\n isRequestAQuote,\n}) => {\n const { sticky, stickyRef, setOffset } = useSticky(1155);\n const [show, setShow] = useState(false);\n\n const currentSection = useStore(state => state.packageState.currentSection);\n\n const [displayBottomMenu, setDisplayBottomMenu] = useState(false);\n\n useEffect(() => {\n if (isOnScreen) {\n setOffset(offset);\n }\n }, [isOnScreen, offset]);\n\n useEffect(() => {\n if (currentSection === EDetailSection.GENERAL) {\n setDisplayBottomMenu(false);\n } else if (\n (currentSection === EDetailSection.ITINERARY ||\n currentSection === EDetailSection.ACCOMMODATION ||\n currentSection === EDetailSection.HIW) &&\n !displayBottomMenu\n ) {\n setDisplayBottomMenu(true);\n }\n }, [currentSection]);\n\n return (\n <>\n <MDBCol\n size={12}\n lg={4}\n ref={stickyRef}\n className={`p-0 ps-lg-4 ${styles.addToCartContainer} ${\n sticky && styles.isStickyBottom\n } ${sticky ? \"d-inline\" : \"d-none\"}`}\n >\n <DetailFixedBarMobile\n isPremium={isPremium}\n onClick={() => setShow(true)}\n price={price}\n packageDetail={packageDetail}\n days={days}\n isRequestAQuote={isRequestAQuote}\n />\n </MDBCol>\n <ModalCartContainer setShow={setShow} show={show}>\n <MDBCol\n size={12}\n lg={4}\n className={`p-0 ps-lg-4 ${styles.addToCartContainer}`}\n >\n <DetailFixedBarMobile\n isPremium={isPremium}\n onClick={() => setShow(true)}\n price={price}\n packageDetail={packageDetail}\n days={days}\n isRequestAQuote={isRequestAQuote}\n />\n </MDBCol>\n <MDBCol size={12} className={`${styles.addToCartContainer}`}>\n {/* <PackageDetailAddToCart\n isPremium={isPremium}\n setIsPremium={setIsPremium}\n setIsPromo={setIsPromo}\n price={price}\n setPrice={setPrice}\n whatIsIncluded={packageDetail.whatIsIncluded}\n associatedToursIds={packageDetail.associatedTours}\n days={days}\n tourId={packageDetail.tourId}\n slots={packageDetail.slots}\n typePackage={typePackage}\n /> */}\n {isRequestAQuote ? (\n <RequestAQuoteForm\n id={packageDetail.tourId}\n activities={\n packageDetail.requestAQuoteActivities ?? []\n }\n fromSmallDevices\n />\n ) : (\n <DetailBookingConfigurator\n tourId={packageDetail.tourId}\n isPremium={isPremium}\n setIsPremium={setIsPremium}\n slots={packageDetail.slots}\n slotsPremium={packagePremium.slots}\n slotsQuality={packageQuality.slots}\n days={days}\n typePackage={typePackage}\n pricePremium={pricePremium}\n priceQuality={priceQuality}\n languages={languages}\n />\n )}\n </MDBCol>\n </ModalCartContainer>\n </>\n );\n};\n\nexport default PackageDetailBookingMobile;\n","import React from \"react\";\nimport styles from \"@/styles/common/Accordion.module.scss\";\nimport userInterfaceSvg from \"@/utils/svg-icon/userInterface\";\n\nexport interface AccordionItemProps {\n title: string;\n extraTitle?: React.ReactNode;\n showDivider?: boolean;\n className?: string;\n isOpen?: boolean;\n onItemClick?: () => void;\n children: React.ReactNode;\n}\n\nconst Accordion: React.FC<AccordionItemProps> = ({\n title,\n extraTitle,\n children,\n isOpen,\n onItemClick,\n showDivider = true,\n className = \"\",\n}) => {\n const { ArrowUpSimpleLine } = userInterfaceSvg;\n\n const handleItemClick = () => {\n if (onItemClick) {\n onItemClick();\n }\n };\n\n return (\n <div className={`${styles.accordionItem} ${className}`}>\n <div\n className={`${styles.accordionItemHeader} ${\n isOpen ? styles.accordionItemHeaderOpen : \"\"\n }\n ${\n isOpen && showDivider\n ? styles.accordionItemHeaderOpenDivider\n : \"\"\n }\n `}\n onClick={handleItemClick}\n >\n <h3 className={styles.sectionTitle}>{title}</h3>\n {extraTitle && <div className=\"me-auto\">{extraTitle}</div>}\n <div\n className={\n isOpen\n ? styles.accordionItemHeaderIcon\n : styles.accordionItemHeaderIconOpen\n }\n >\n <ArrowUpSimpleLine />\n </div>\n </div>\n {isOpen && (\n <div className={styles.accordionContent}>{children}</div>\n )}\n </div>\n );\n};\n\nexport default Accordion;\n","import React from \"react\";\nimport styles from \"@/styles/detail/DetailBookingSidebar/AccordionItemActivity.module.scss\";\nimport userInterfaceSvg from \"@/utils/svg-icon/userInterface\";\n\nexport interface AccordionItemProps {\n title: string;\n extraTitle?: React.ReactNode;\n showDivider?: boolean;\n classNameHeader?: string;\n isOpen?: boolean;\n onItemClick?: () => void;\n children: React.ReactNode;\n}\n\nconst AccordionItemActivity: React.FC<AccordionItemProps> = ({\n title,\n extraTitle,\n children,\n isOpen,\n onItemClick,\n showDivider = true,\n classNameHeader = \"\",\n}) => {\n const { ArrowUpSimpleLine } = userInterfaceSvg;\n\n const handleItemClick = () => {\n if (onItemClick) {\n onItemClick();\n }\n };\n\n return (\n <div\n className={`${styles.accordionItem} ${\n isOpen && styles.accordionItemOpen\n }`}\n >\n <div\n className={`${styles.accordionItemHeader} ${classNameHeader} ${\n isOpen ? styles.accordionItemHeaderOpen : \"\"\n }\n ${\n isOpen && showDivider\n ? styles.accordionItemHeaderOpenDivider\n : \"\"\n }\n `}\n onClick={handleItemClick}\n >\n {extraTitle && <div className=\"me-3\">{extraTitle}</div>}\n <h3 className=\"me-auto\">{title}</h3>\n\n <div\n className={\n isOpen\n ? styles.accordionItemHeaderIcon\n : styles.accordionItemHeaderIconOpen\n }\n >\n <ArrowUpSimpleLine />\n </div>\n </div>\n {isOpen && (\n <div className={styles.accordionItemContent}>{children}</div>\n )}\n </div>\n );\n};\n\nexport default AccordionItemActivity;\n","import ActivityIcon from \"@/components/common/ActivityIcon\";\nimport Accordion from \"@/components/common/accordion/Accordion\";\nimport AccordionItem from \"@/components/detail/DetailBooking/DetailBookingSidebar/Accordion\";\nimport { WhatIsIncludedTO } from \"@/models/detail\";\nimport { QuillDeltaToHtmlConverter } from \"quill-delta-to-html\";\nimport styles from \"@/styles/detail/DetailBookingSidebar/ActivityIconBody.module.scss\";\nimport AccordionItemActivity from \"./AccordionItemActivity\";\n\nconst ActivityIconBody = ({\n whatIsIncluded,\n whatIsIncludedDelta,\n}: {\n whatIsIncluded: WhatIsIncludedTO[];\n whatIsIncludedDelta: {\n ops: unknown[];\n }[];\n}) => {\n return (\n <div className={styles.container}>\n <Accordion className=\"p-0 m-0\">\n <AccordionItem\n title=\"What is included:\"\n className=\"border-0 p-0 m-0\"\n showDivider={false}\n >\n {whatIsIncluded?.map((el, idx) => {\n return (\n <Accordion className=\"p-0 m-0 mb-3\">\n <AccordionItemActivity\n title={el.name}\n showDivider={false}\n classNameHeader=\"pb-0\"\n extraTitle={\n <ActivityIcon\n alt={el.name}\n borderColor={el.color}\n src={el.icon}\n className=\"p-2\"\n isSmall\n />\n }\n >\n <div\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{\n __html: new QuillDeltaToHtmlConverter(\n whatIsIncludedDelta.at(idx)\n ?.ops ?? []\n ).convert(),\n }}\n />\n </AccordionItemActivity>\n </Accordion>\n );\n })}\n </AccordionItem>\n </Accordion>\n </div>\n );\n};\n\nexport default ActivityIconBody;\n","import styles from \"@/styles/detail/DetailBookingSidebar/Sidebar.module.scss\";\nimport { SlotsReadableTO, WhatIsIncludedTO } from \"@/models/detail\";\nimport { ETourLanguage, ETypePackage } from \"@/models/common/enums\";\nimport ActivityIconBody from \"./ActivityIconBody\";\nimport DetailBookingConfigurator from \"./DetailBookingConfigurator\";\n\nconst Sidebar = ({\n whatIsIncluded,\n tourId,\n isPremium,\n setIsPremium,\n slots,\n days,\n typePackage,\n pricePremium,\n priceQuality,\n whatIsIncludedDelta,\n slotsPremium,\n slotsQuality,\n languages,\n}: {\n whatIsIncluded: WhatIsIncludedTO[];\n whatIsIncludedDelta: {\n ops: unknown[];\n }[];\n tourId: string;\n setIsPremium: (el: boolean) => void;\n isPremium: boolean;\n slots: SlotsReadableTO[];\n days: string;\n typePackage: ETypePackage;\n priceQuality: number;\n pricePremium: number;\n slotsPremium: SlotsReadableTO[];\n slotsQuality: SlotsReadableTO[];\n languages: ETourLanguage[];\n}) => {\n return (\n <div className={styles.container}>\n <ActivityIconBody\n whatIsIncluded={whatIsIncluded}\n whatIsIncludedDelta={whatIsIncludedDelta}\n />\n <DetailBookingConfigurator\n tourId={tourId}\n isPremium={isPremium}\n setIsPremium={setIsPremium}\n slots={slots}\n days={days}\n typePackage={typePackage}\n pricePremium={pricePremium}\n priceQuality={priceQuality}\n slotsPremium={slotsPremium}\n slotsQuality={slotsQuality}\n languages={languages}\n />\n </div>\n );\n};\n\nexport default Sidebar;\n","import Image from \"next/image\";\nimport { FC, useState } from \"react\";\nimport { ItalianExpertReadableTO } from \"../../models/detail\";\nimport styles from \"../../styles/detail/DetailDescription.module.scss\";\n\nconst PackageDetailDescriptionCard: FC<{\n cardData: ItalianExpertReadableTO;\n}> = ({ cardData }) => {\n const [coverError, setCoverError] = useState(false);\n const [avatarError, setAvatarError] = useState(false);\n return (\n <div className=\"w-100\">\n <div className={styles.cardImageContainer}>\n <Image\n src={\n coverError\n ? \"/images/tours/across-italy-reduced.jpg\"\n : cardData.image\n }\n className={styles.imageDescription}\n alt=\"card-image\"\n fill\n onError={() => {\n setCoverError(true);\n }}\n />\n </div>\n <div className={`${styles.cardDataContainer} mb-5`}>\n <div className={styles.cardImageProfileContainer}>\n <Image\n src={\n !cardData.avatar || avatarError\n ? \"/images/tours/across-italy-reduced.jpg\"\n : cardData.avatar!\n }\n className={styles.imageProfile}\n style={{\n borderColor:\n cardData && cardData.color\n ? cardData.color\n : \"#00ff2a\",\n }}\n alt=\"user-image\"\n width={40}\n height={40}\n onError={() => {\n setAvatarError(true);\n }}\n />\n </div>\n <div className=\"ms-3\">\n <span className={styles.cardNameItalianExpert}>\n {cardData.name}\n </span>\n <div>\n <span className={styles.cardItalianExpert}>\n Italian Expert\n </span>\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nexport default PackageDetailDescriptionCard;\n","import { MDBCol, MDBContainer, MDBRow } from \"mdb-react-ui-kit\";\nimport React, { FC, ReactNode, useMemo, useState } from \"react\";\nimport SwiperClass from \"swiper\";\nimport { useIsSM } from \"@/utils/hooks/useWindowSizes\";\nimport styles from \"../../styles/detail/DetailDescription.module.scss\";\nimport ButtonBack from \"../common/carousel/ButtonBack\";\nimport ButtonNext from \"../common/carousel/ButtonNext\";\nimport PackageDetailDescriptionCard from \"./PackageDetailDescriptionCard\";\nimport { ItalianExpertReadableTO } from \"../../models/detail\";\nimport Carousel from \"../common/carousel/Carousel\";\nimport { TBreackpointsCarousel } from \"../../models/common/common\";\n\nconst PackageDetailDescriptionCarousel: FC<{\n italiansExpert: ItalianExpertReadableTO[];\n}> = ({ italiansExpert }) => {\n const [swiperClass, setSwiperClass] = useState<SwiperClass | null>(null);\n\n const cards: ReactNode[] = useMemo(\n () =>\n italiansExpert?.map(el => (\n // eslint-disable-next-line no-underscore-dangle\n <PackageDetailDescriptionCard key={el._id} cardData={el} />\n )) ?? [],\n [italiansExpert]\n );\n\n const breackPointCarousel: TBreackpointsCarousel = {\n 0: {\n slidesPerView: italiansExpert.length > 1 ? 1.1 : 1,\n spaceBetween: 12,\n },\n };\n\n const isSM = useIsSM();\n\n return (\n <div className={styles.titleAndCarouselContainer}>\n <MDBContainer fluid className=\"px-0 pr-lg-4\">\n {!isSM && italiansExpert.length > 1 && (\n <MDBRow>\n <MDBCol className=\"p-0 mb-3 d-flex justify-content-end\">\n <div className=\"d-flex\">\n <ButtonBack swiperClass={swiperClass} />\n <ButtonNext\n className=\"ms-2\"\n swiperClass={swiperClass}\n />\n </div>\n </MDBCol>\n </MDBRow>\n )}\n <MDBRow className=\"gx-0 pe-md-2 pe-lg-0\">\n <MDBCol\n size={12}\n md={7}\n className={`${styles.carouselTitle} pe-lg-3`}\n >\n <h3>\n Travel with our\n <span className=\"d-block\">Italian Experts!</span>\n </h3>\n <p className={styles.carouselSubtitle}>\n <b>\n Italian experts are Italians that truly love and\n know everything about their Country.\n </b>{\" \"}\n They can’t wait to share their passion and knowledge\n with you so ... get ready and join them for the best\n Italian trip ever!\n </p>\n </MDBCol>\n {isSM && italiansExpert.length > 1 && (\n <MDBRow>\n <MDBCol className=\"p-0 mb-3 d-flex justify-content-end\">\n <div className=\"d-flex\">\n <ButtonBack swiperClass={swiperClass} />\n <ButtonNext\n className=\"ms-2\"\n swiperClass={swiperClass}\n />\n </div>\n </MDBCol>\n </MDBRow>\n )}\n <MDBCol size={12} md={5}>\n <Carousel\n visibleSlides={1}\n breakpoints={breackPointCarousel}\n setSwiperClass={setSwiperClass}\n >\n {cards}\n </Carousel>\n </MDBCol>\n </MDBRow>\n </MDBContainer>\n </div>\n );\n};\n\nexport default PackageDetailDescriptionCarousel;\n","import Image from \"next/image\";\nimport { FC, useMemo, useState } from \"react\";\nimport { MDBCol, MDBContainer, MDBRow } from \"mdb-react-ui-kit\";\nimport { QuillDeltaToHtmlConverter } from \"quill-delta-to-html\";\nimport { TourReadableTO } from \"../../models/detail\";\nimport styles from \"../../styles/detail/DetailDescription.module.scss\";\nimport PackageDetailDescriptionCarousel from \"./PackageDetailDescriptionCarousel\";\nimport { ActivityReableTO } from \"../../models/common/common\";\nimport ActivityIcon from \"../common/ActivityIcon\";\nimport { useShouldRenderArrayFC } from \"../../utils/hooks/useShouldRenderArrayFC\";\n\n/* eslint-disable no-underscore-dangle */\nconst PackageDetailDescription: FC<{\n packageDetail: TourReadableTO;\n}> = ({ packageDetail }) => {\n const uniq = (arr: ActivityReableTO[], track = new Set()) =>\n arr.filter(({ name }) => (track.has(name) ? false : track.add(name)));\n const [error, setError] = useState(false);\n\n const activities = useMemo(() => {\n const results = packageDetail.itineraries.map(\n el => el.itinerary.activities\n );\n return uniq(results.flat());\n }, [packageDetail]);\n\n const converter = new QuillDeltaToHtmlConverter(\n packageDetail.whatWillYouSeeDelta?.ops ?? []\n );\n\n const html = converter.convert();\n\n return (\n <div>\n <div className={styles.container}>\n <div className={styles.textContainer}>\n <h2>\n What will <span>you see?</span>\n </h2>\n {packageDetail.whatWillYouSeeDelta?.ops ? (\n <div dangerouslySetInnerHTML={{ __html: html }} />\n ) : (\n <p>{packageDetail.whatWillYouSee}</p>\n )}\n </div>\n <div className={styles.imageContainer}>\n <Image\n className={styles.imageDescription}\n src={\n error\n ? \"/images/tours/across-italy-reduced.jpg\"\n : packageDetail.whatWillYouSeeImage\n }\n alt=\"detail-image\"\n fill\n onError={() => {\n setError(true);\n }}\n />\n </div>\n <div className={styles.descriptionDivider} />\n <div className={styles.activitiesContainer}>\n <h3 className={styles.includedActivitiesTitle}>\n Included activities\n </h3>\n <MDBContainer fluid className=\"p-0\">\n <MDBRow className=\"p-0\">\n {activities.map(el => (\n <MDBCol\n key={el._id}\n size={6}\n className=\"py-2\"\n center\n >\n <MDBRow className={styles.containerColSize}>\n <MDBCol\n className={`${styles.colSize} px-0`}\n size={3}\n md={3}\n xxl={2}\n >\n <ActivityIcon\n alt={el.name}\n borderColor={el.color}\n src={el.icon}\n className=\"p-2 p-md-3\"\n />\n </MDBCol>\n <MDBCol className=\"px-md-2\">\n {el.name}\n </MDBCol>\n </MDBRow>\n </MDBCol>\n ))}\n </MDBRow>\n </MDBContainer>\n </div>\n </div>\n\n {useShouldRenderArrayFC(packageDetail.italiansExpert) && (\n <PackageDetailDescriptionCarousel\n italiansExpert={packageDetail.italiansExpert!}\n />\n )}\n </div>\n );\n};\n\nexport default PackageDetailDescription;\n","import SectionTitle from \"@/components/common/SectionTitle\";\nimport { ISectionTitle } from \"@/models/common/common\";\nimport {\n travelExperiencesSubTitle,\n travelExperiencesTitle,\n} from \"@/utils/mockData/homeMocks\";\nimport React from \"react\";\nimport styles from \"@/styles/detail/DetailBookingSidebar/TravelExperienceSectionDetail.module.scss\";\nimport generalSvg from \"@/utils/svg-icon/general\";\nimport socialAndBrandSvg from \"@/utils/svg-icon/socialAndBrand\";\n\nconst TravelExperienceSectionDetail = () => {\n const title: ISectionTitle = {\n title: travelExperiencesTitle,\n subTitle: travelExperiencesSubTitle,\n classNameContainer: \"p-0\",\n alignment: \"\",\n };\n\n const { Star } = generalSvg;\n const { SketchLine } = socialAndBrandSvg;\n\n return (\n <div className={styles.container}>\n <SectionTitle sectionTitle={title} />\n <div className={styles.containerPackageSection}>\n <div className={`${styles.package} ${styles.packageQuality}`}>\n <h1 className={styles.packageTitle}>Quality</h1>\n <p className={styles.packageDescription}>\n Our quality package formula offers the best travel\n experience, combining comfortable hotels with fun group\n outings. Our tours are guided by Italian experts—locals\n with a true passion for tourism. Their goal is to make\n your journey fun, insightful, relaxing, and truly\n unforgettable.\n </p>\n {/* <div className=\"text-center py-2\">\n <CatQuality />\n </div> */}\n <div className={styles.packageList}>\n <div className={styles.packageListIconQuality}>\n <Star />\n </div>\n <p className={styles.packageListText}>4-stars hotel</p>\n </div>\n <div className={styles.packageList}>\n <div className={styles.packageListIconQuality}>\n <Star />\n </div>\n <p className={styles.packageListText}>\n Round-trip private transfers from your arrival point\n to accommodation, tailored to your itinerary\n </p>\n </div>\n <div className={styles.packageList}>\n <div className={styles.packageListIconQuality}>\n <Star />\n </div>\n <p className={styles.packageListText}>\n Group experiences\n </p>\n </div>\n <div className={styles.packageList}>\n <div className={styles.packageListIconQuality}>\n <Star />\n </div>\n <p className={styles.packageListText}>\n Assistance before, during, and after your stay\n </p>\n </div>\n <div className={styles.packageList}>\n <div className={styles.packageListIconQuality}>\n <Star />\n </div>\n <p className={styles.packageListText}>\n Italian Experts\n </p>\n </div>\n <div className={styles.packageList}>\n <div className={styles.packageListIconQuality}>\n <Star />\n </div>\n <p className={styles.packageListText}>\n Optional: Flights and Travel Insurance\n </p>\n </div>\n </div>\n <div className={`${styles.package} ${styles.packagePremium}`}>\n <h1 className={styles.packageTitle}>Premium</h1>\n <p className={styles.packageDescription}>\n If you're looking to enjoy an exclusive Italian\n experience, our premium package is perfect for you.\n You'll stay in exclusive and unique accommodations\n and enjoy the comfort of private transfers. Your private\n party will be guided by our Italian experts, ensuring an\n unforgettable journey.\n </p>\n {/* <div className=\"text-center py-2\">\n <CatPremium />\n </div> */}\n <div className={styles.packageList}>\n <div className={styles.packageListIconPremium}>\n <SketchLine />\n </div>\n <p className={styles.packageListText}>\n Exclusive and unique accommodations\n </p>\n </div>\n <div className={styles.packageList}>\n <div className={styles.packageListIconPremium}>\n <SketchLine />\n </div>\n <p className={styles.packageListText}>\n Round-trip private transfers from your arrival point\n to accommodation, tailored to your itinerary\n </p>\n </div>\n <div className={styles.packageList}>\n <div className={styles.packageListIconPremium}>\n <SketchLine />\n </div>\n <p className={styles.packageListText}>\n Private experiences\n </p>\n </div>\n <div className={styles.packageList}>\n <div className={styles.packageListIconPremium}>\n <SketchLine />\n </div>\n <p className={styles.packageListText}>\n Assistance before, during, and after your stay\n </p>\n </div>\n <div className={styles.packageList}>\n <div className={styles.packageListIconPremium}>\n <SketchLine />\n </div>\n <p className={styles.packageListText}>\n Italian Experts\n </p>\n </div>\n <div className={styles.packageList}>\n <div className={styles.packageListIconPremium}>\n <SketchLine />\n </div>\n <p className={styles.packageListText}>\n Optional: Flights and Travel Insurance\n </p>\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nexport default TravelExperienceSectionDetail;\n","import { MDBCol, MDBContainer, MDBRow } from \"mdb-react-ui-kit\";\nimport {\n forwardRef,\n ReactElement,\n RefObject,\n useEffect,\n useState,\n} from \"react\";\nimport { useIsSM } from \"@/hooks/useWindowSizes\";\nimport { TourReadableTO } from \"@/models/detail\";\nimport styles from \"@/styles/detail/DetailBooking.module.scss\";\nimport useOnScreen from \"@/hooks/useOnScreen\";\nimport { useStore } from \"@/store/index\";\nimport { EDetailSection, ETypePackage } from \"@/models/common/enums\";\nimport PackageDetailBookingMobile from \"@/components/detail/DetailBooking/PackageDetailBookingMobile\";\nimport Sidebar from \"./DetailBookingSidebar/Sidebar\";\nimport PackageDetailDescription from \"../PackageDetailDescription\";\nimport TravelExperienceSectionDetail from \"./DetailBookingSidebar/TravelExperienceSectionDetail\";\nimport { RequestAQuoteForm } from \"./RequestAQuoteForm\";\n\nconst PackageDetailBooking = forwardRef<\n HTMLDivElement,\n {\n packageDetail: TourReadableTO;\n isRequestAQuote: boolean;\n isPremium: boolean;\n setIsPremium: (el: boolean) => void;\n // setIsPromo: (el: boolean) => void;\n days: string;\n typePackage: ETypePackage;\n pricePremium: number;\n priceQuality: number;\n packagePremium: TourReadableTO;\n packageQuality: TourReadableTO;\n }\n>(\n (\n {\n packageDetail,\n isRequestAQuote,\n isPremium,\n setIsPremium,\n // setIsPromo,\n days,\n typePackage,\n pricePremium,\n priceQuality,\n packagePremium,\n packageQuality,\n },\n ref\n ): ReactElement => {\n const isSM = useIsSM();\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars\n const [price, setPrice] = useState<number>(+packageDetail.price);\n\n const dispatch = useStore(state => state.dispatchPackage);\n\n const isOnScreen = useOnScreen(ref as RefObject<HTMLElement>);\n\n useEffect(() => {\n if (isOnScreen) {\n dispatch({\n type: \"SET_CURRENT_SECTION\",\n payload: EDetailSection.GENERAL,\n });\n }\n }, [isOnScreen]);\n\n return (\n <div ref={!isSM ? ref : null} className={styles.customContainer}>\n <MDBContainer fluid className={styles.containerSpacer}>\n <MDBRow>\n <MDBCol\n ref={isSM ? ref : null}\n size={12}\n lg={7}\n className=\"p-0 pe-lg-4 \"\n >\n <PackageDetailDescription\n packageDetail={packageDetail}\n />\n <TravelExperienceSectionDetail />\n </MDBCol>\n {isSM && (\n <PackageDetailBookingMobile\n days={days}\n isOnScreen={isOnScreen}\n isPremium={isPremium}\n offset={\n (ref as RefObject<HTMLElement>).current\n ?.offsetTop ?? 1155\n }\n packageDetail={packageDetail}\n setIsPremium={setIsPremium}\n // setIsPromo={setIsPromo}\n typePackage={typePackage}\n price={price}\n // setPrice={setPrice}\n pricePremium={pricePremium}\n priceQuality={priceQuality}\n packagePremium={packagePremium}\n packageQuality={packageQuality}\n languages={packageDetail.languages}\n isRequestAQuote={isRequestAQuote}\n />\n )}\n\n {!isSM && isRequestAQuote && (\n <MDBCol\n size={12}\n lg={5}\n className={`p-0 ps-lg-4 ${styles.addToCartContainer}`}\n >\n <RequestAQuoteForm\n id={packageDetail.tourId}\n activities={\n packageDetail.requestAQuoteActivities ??\n []\n }\n />\n </MDBCol>\n )}\n\n {!isSM && !isRequestAQuote && (\n <MDBCol\n size={12}\n lg={5}\n className={`p-0 ps-lg-4 ${styles.addToCartContainer}`}\n >\n <Sidebar\n whatIsIncludedDelta={\n packageDetail.whatIsIncludedDelta ?? []\n }\n tourId={packageDetail.tourId}\n whatIsIncluded={\n packageDetail.whatIsIncluded\n }\n isPremium={isPremium}\n setIsPremium={setIsPremium}\n slots={packageDetail.slots}\n slotsPremium={packagePremium.slots}\n slotsQuality={packageQuality.slots}\n days={days}\n typePackage={typePackage}\n pricePremium={pricePremium}\n priceQuality={priceQuality}\n languages={packageDetail.languages}\n />\n </MDBCol>\n )}\n </MDBRow>\n </MDBContainer>\n </div>\n );\n }\n);\n\nexport default PackageDetailBooking;\n","import {\n MDBBtn,\n MDBCol,\n MDBContainer,\n MDBModal,\n MDBRow,\n} from \"mdb-react-ui-kit\";\nimport { FC, useEffect, useState } from \"react\";\nimport userInterfaceSvg from \"../../utils/svg-icon/userInterface\";\nimport styles from \"../../styles/detail/Detail.ModalMap.module.scss\";\n\nconst ModalMap: FC<{\n url: string | undefined;\n show: boolean;\n setShow: (el: boolean) => void;\n}> = ({ url, show, setShow }) => {\n const { CloseLine } = userInterfaceSvg;\n\n const toggleShow = () => setShow(!show);\n const [render, setRender] = useState(false);\n\n useEffect(() => setRender(true), []);\n\n return (\n <div>\n {render && (\n <MDBModal show={show} setShow={setShow} tabIndex=\"-1\">\n <MDBContainer\n fluid\n className=\"d-flex justify-content-center align-items-center p-0 vh-100 vw-100\"\n style={{ backgroundColor: \"#282838\" }}\n >\n <MDBCol className=\"d-flex flex-column h-100 w-100\">\n <MDBRow className=\"mt-3 justify-content-end\">\n <MDBCol center size={2} lg={1}>\n <MDBBtn\n className={` ${styles.button} d-flex justify-content-center shadow-0`}\n tag=\"a\"\n floating\n onClick={toggleShow}\n >\n <CloseLine className=\"align-self-center\" />\n </MDBBtn>\n </MDBCol>\n </MDBRow>\n <MDBRow className=\"flex-fill justify-content-center\">\n <MDBCol\n center\n size={12}\n className=\"px-5 px-lg-0 d-flex justify-content-center align-items-center h-100\"\n >\n <iframe\n id=\"map\"\n src={url}\n allow=\"geolocation\"\n className={styles.mapContainer}\n title=\"map\"\n style={{\n overflowY: \"hidden\",\n width: \"100%\",\n }}\n />\n </MDBCol>\n </MDBRow>\n </MDBCol>\n </MDBContainer>\n </MDBModal>\n )}\n </div>\n );\n};\n\nexport default ModalMap;\n","import { ForwardedRef, useEffect, useRef } from \"react\";\n\n/* eslint-disable */\nconst useForwardRef = <T>(\n ref: ForwardedRef<HTMLDivElement>,\n initialValue: any = null\n) => {\n const targetRef = useRef<T>(initialValue);\n\n useEffect(() => {\n if (!ref) return;\n\n if (typeof ref === \"function\") {\n // @ts-ignore\n ref(targetRef.current);\n } else {\n // @ts-ignore\n ref.current = targetRef.current;\n }\n }, [ref]);\n\n return targetRef;\n};\n\nexport default useForwardRef;\n","import { MDBCard, MDBCol, MDBRow } from \"mdb-react-ui-kit\";\nimport { FC, useState } from \"react\";\nimport { QuillDeltaToHtmlConverter } from \"quill-delta-to-html\";\nimport styles from \"../../styles/detail/Detail.TravelExperiencesStepCard.module.scss\";\nimport contactsSvg from \"../../utils/svg-icon/contacts\";\nimport socialAndBrandSvg from \"../../utils/svg-icon/socialAndBrand\";\nimport userInterfaceSvg from \"../../utils/svg-icon/userInterface\";\nimport { ItinerariesReadableTO } from \"../../models/detail\";\nimport ActivityIcon from \"../common/ActivityIcon\";\nimport { useIsMD } from \"../../utils/hooks/useWindowSizes\";\n\n/* eslint-disable no-underscore-dangle */\nconst TravelExperiencesStepCard: FC<{\n cardData: ItinerariesReadableTO;\n isPremium: boolean;\n setShow: (el: boolean) => void;\n}> = ({ cardData, isPremium, setShow }) => {\n const { CalendarLine, LocationLine, ClockLine } = contactsSvg;\n\n const [moreInfo, setMoreInfo] = useState<boolean>(false);\n\n const isMD = useIsMD();\n\n const converter = new QuillDeltaToHtmlConverter(\n cardData.itinerary.descriptionDelta?.ops ?? []\n );\n\n const html = converter.convert();\n\n return (\n <MDBCard\n className={\n isPremium\n ? `${styles.cardBorderPremium}`\n : `${styles.cardBorderQuality}`\n }\n >\n <MDBRow className=\"g-0\">\n <MDBCol lg={9} xl={8} xxl={9}>\n <div className=\"px-3 pt-3 d-flex flex-column\">\n <div className=\"d-flex align-items-center mb-3 text-uppercase\">\n <span className={`ps-2 ${styles.cardClockIcon}`}>\n <CalendarLine />\n </span>\n <span className={styles.starText}>\n {cardData.day}º day\n </span>\n {cardData.itinerary.distance !== \"0km\" && (\n <>\n {\" \"}\n <span\n className={`ps-2 ${styles.cardClockIcon}`}\n >\n <LocationLine />\n </span>\n <span className={styles.starText}>\n {cardData.itinerary.distance}\n </span>\n </>\n )}\n {cardData.itinerary.time !==\n \"00 hours 00 minutes\" && (\n <>\n <span\n className={`ps-2 d-none d-md-block ${styles.cardClockIcon}`}\n >\n <ClockLine />\n </span>\n <span\n className={`d-none d-md-block ${styles.starText}`}\n >\n {cardData.itinerary.time}\n </span>\n </>\n )}\n <span\n className={`ps-2 ${\n isPremium\n ? styles.cardDiamondIcon\n : styles.cardStarQIcon\n }`}\n >\n {isPremium ? (\n <socialAndBrandSvg.SketchLine />\n ) : (\n <userInterfaceSvg.StarLine />\n )}\n </span>\n <span className={styles.starText}>\n {isPremium ? \"Premium\" : \"Quality\"}\n </span>\n </div>\n <h3 className={styles.cardTitle}>\n {cardData.itinerary.title}\n </h3>\n </div>\n </MDBCol>\n {!isMD && (\n <MDBCol size={8} md={4} xl={4} xxl={3} className=\"ps-3\">\n <MDBRow className=\"px-3\">\n {cardData.itinerary.activities.map(el => (\n <MDBCol\n key={el._id}\n className=\"d-inline-flex justify-content-xl-end p-0 mt-3\"\n >\n <ActivityIcon\n alt={el.name}\n borderColor={el.color}\n src={el.icon}\n className=\"p-2\"\n isSmall\n />\n </MDBCol>\n ))}\n </MDBRow>\n </MDBCol>\n )}\n </MDBRow>\n <MDBRow className=\"g-0\">\n <div className=\"px-3 d-flex flex-column\">\n <hr className=\"m-2\" />\n <div className=\"d-flex flex-row justify-content-between align-content-center\">\n <div>\n <span\n className={`${styles.cardSecondaryText} me-2`}\n >\n {moreInfo ? \"Less info \" : \"More info\"}\n </span>\n\n {moreInfo ? (\n <span\n onClick={() => setMoreInfo(!moreInfo)}\n className={styles.spanMoreInfo}\n >\n <userInterfaceSvg.ArrowUpSimpleLine />\n </span>\n ) : (\n <span\n onClick={() => setMoreInfo(!moreInfo)}\n className={styles.spanMoreInfo}\n >\n <userInterfaceSvg.ArrowDownSimpleLine />\n </span>\n )}\n </div>\n {isMD && (\n <span\n className={`${styles.cardSecondaryText} my-auto me-2`}\n onClick={() => setShow(true)}\n >\n View map\n </span>\n )}\n </div>\n\n <div className=\"mt-3\">\n {moreInfo && (\n <>\n {cardData.itinerary.descriptionDelta?.ops ? (\n <div\n dangerouslySetInnerHTML={{\n __html: html,\n }}\n />\n ) : (\n <p className={styles.cardSecondaryText}>\n {cardData.itinerary.description}\n </p>\n )}\n {isMD && (\n <>\n <MDBRow\n className={`px-3 ${styles.activityText}`}\n >\n ACTIVITIES\n </MDBRow>\n <MDBRow className=\"px-3 pb-3 d-inline-flex\">\n {cardData.itinerary.activities.map(\n el => (\n <MDBCol\n key={el._id}\n className=\"d-inline-flex justify-content-xl-center p-0 mt-3\"\n >\n <ActivityIcon\n alt={el.name}\n borderColor={\n el.color\n }\n src={el.icon}\n className=\"p-2\"\n isSmall\n />\n </MDBCol>\n )\n )}\n </MDBRow>\n </>\n )}\n </>\n )}\n </div>\n </div>\n </MDBRow>\n </MDBCard>\n );\n};\n\nexport default TravelExperiencesStepCard;\n","import {\n MDBBtn,\n MDBCol,\n MDBContainer,\n MDBRow,\n MDBSwitch,\n} from \"mdb-react-ui-kit\";\nimport {\n forwardRef,\n MutableRefObject,\n ReactElement,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport ModalMap from \"@/components/detail/ModalMap\";\nimport TagsPackageType from \"@/components/detail/tags/TagsPackageType\";\nimport { laodMore } from \"@/utils/analytics/tagmanager\";\nimport TagManager from \"react-gtm-module\";\nimport { ISectionTitle } from \"../../models/common/common\";\nimport { ItinerariesReadableTO, TourReadableTO } from \"../../models/detail\";\nimport styles from \"../../styles/detail/Detail.TravelExperiencesStep.module.scss\";\nimport useForwardRef from \"../../utils/hooks/useForwardRef\";\nimport {\n travelExperiencesSubTitle,\n travelExperiencesTitleGreen,\n} from \"../../utils/mockData/homeMocks\";\nimport { qualityPremiumContent } from \"../../utils/mockData/infoMock\";\nimport contactsSvg from \"../../utils/svg-icon/contacts\";\nimport userInterfaceSvg from \"../../utils/svg-icon/userInterface\";\nimport InfoModalDouble from \"../common/info/InfoModalDouble\";\nimport SectionTitle from \"../common/SectionTitle\";\nimport TravelExperiencesStepCard from \"./TravelExperiencesStepCard\";\nimport { useIsMD } from \"../../utils/hooks/useWindowSizes\";\nimport { useStore } from \"../../store\";\nimport useOnScreen from \"../../utils/hooks/useOnScreen\";\nimport { EDetailSection, ETypePackage } from \"../../models/common/enums\";\n\nconst TravelExperiencesStep = forwardRef<\n HTMLDivElement,\n {\n itineraries: ItinerariesReadableTO[];\n isPremium: boolean;\n setIsPremium: (el: boolean) => void;\n typePackage: ETypePackage;\n packageDetail: TourReadableTO;\n }\n // eslint-disable-next-line sonarjs/cognitive-complexity\n>(\n (\n { itineraries, isPremium, setIsPremium, typePackage, packageDetail },\n ref\n // eslint-disable-next-line sonarjs/cognitive-complexity\n ): ReactElement => {\n const travelExperiencesStepSection =\n useForwardRef<HTMLInputElement>(ref);\n const dispatch = useStore(state => state.dispatchPackage);\n\n const isOnScreen = useOnScreen(travelExperiencesStepSection);\n const { InfoCircleLine } = contactsSvg;\n const { ArrowDownSimpleLine } = userInterfaceSvg;\n const minimumVisibleCards = 4;\n const [visibleCards, setVisibleCards] = useState<number>(4);\n const [showModalMap, setShowModalMap] = useState<boolean>(false);\n\n const shouldBeExpandable = () => {\n return itineraries.length > minimumVisibleCards;\n };\n\n const shouldAddTransparency = (currentIndex: number) => {\n return (\n visibleCards < itineraries.length &&\n currentIndex >= visibleCards &&\n shouldBeExpandable()\n );\n };\n\n const isAllCardsVisible = () => {\n return visibleCards === itineraries.length;\n };\n\n const title: ISectionTitle = {\n title: travelExperiencesTitleGreen,\n subTitle: travelExperiencesSubTitle,\n classNameContainer: \"p-0\",\n alignment: \"justify-content-center text-center\",\n };\n\n const [showInfoModal, setShowInfoModal] = useState<boolean>(false);\n\n const isMD = useIsMD();\n\n const divColCards = useRef() as MutableRefObject<HTMLDivElement>;\n const [clientHeight, setClientHeight] = useState(0);\n\n const checkAtlasMap = (): string | undefined => {\n const map = packageDetail.atlasMap;\n const baseUrlAtlasMap =\n process.env.NEXT_PUBLIC_ATLASMAP_BASE_URL ??\n \"https://my.atlist.com/map\";\n\n const flag = map?.includes(baseUrlAtlasMap);\n if (flag) return map;\n return \"https://my.atlistmaps.com/map/6bff2890-48de-4852-9a3e-7c2e6d5d048f?share=true\";\n };\n\n useEffect(() => {\n if (!divColCards.current) return;\n const resizeObserver = new ResizeObserver(() => {\n setClientHeight(divColCards.current.clientHeight);\n });\n resizeObserver.observe(divColCards.current);\n // eslint-disable-next-line consistent-return\n return () => resizeObserver.disconnect();\n }, []);\n\n useEffect(() => {\n if (isOnScreen) {\n dispatch({\n type: \"SET_CURRENT_SECTION\",\n payload: EDetailSection.ITINERARY,\n });\n }\n }, [isOnScreen]);\n\n /* eslint-disable react/no-array-index-key */\n return (\n <MDBContainer\n fluid\n className={styles.travelSectionBgColor}\n ref={travelExperiencesStepSection}\n >\n <MDBRow className=\"px-3 justify-content-center p-lg-0\">\n <SectionTitle sectionTitle={title} />\n </MDBRow>\n {typePackage === ETypePackage.QUALITY_AND_PREMIUM && (\n <>\n <MDBRow\n className=\"justify-content-center\"\n role=\"button\"\n tabIndex={0}\n onClick={() => setShowInfoModal(true)}\n >\n <MDBCol className={styles.info}>\n <p>Choose your esperienza</p>\n <InfoCircleLine />\n </MDBCol>\n </MDBRow>\n <MDBRow className=\"justify-content-center mt-3\">\n <div className=\"d-flex justify-content-center mt-1 mb-2\">\n <span\n className={\n !isPremium\n ? `pe-3 ${styles.cardSecondaryTextBold}`\n : `pe-3 ${styles.cardSecondaryText}`\n }\n >\n Quality\n </span>\n <MDBSwitch\n checked={isPremium}\n onChange={() => {\n setIsPremium(!isPremium);\n const url = new URL(\n window.location.href\n );\n url.searchParams.set(\n \"isPremium\",\n !isPremium as unknown as string\n );\n window.history.replaceState(\n null,\n \"\",\n url\n );\n }}\n className={styles.customSwitch}\n />\n <span\n className={\n isPremium\n ? `ps-3 ${styles.cardSecondaryTextBold}`\n : `ps-3 ${styles.cardSecondaryText}`\n }\n >\n Premium\n </span>\n </div>\n </MDBRow>\n </>\n )}\n\n {typePackage !== ETypePackage.QUALITY_AND_PREMIUM && (\n <TagsPackageType\n isPremium={typePackage === ETypePackage.ONLY_PREMIUM}\n />\n )}\n <MDBRow className=\"align-items-start mt-5\">\n <div className={styles.divComtainer}>\n <MDBCol\n size={12}\n lg={7}\n ref={divColCards}\n className={styles.divColCards}\n >\n {itineraries.map((el, id) => (\n <MDBRow\n key={`${el.day}_${id}`}\n className={`${\n id < visibleCards\n ? \"d-flex m-2\"\n : \"d-none m-2\"\n }`}\n >\n <MDBCol size={1}>\n {/* eslint-disable-next-line no-underscore-dangle */}\n <span key={el.itinerary._id}>\n <div\n className={styles.numberStep}\n >{`${\n id >= 9 ? id + 1 : `0${id + 1}`\n }`}</div>\n </span>\n </MDBCol>\n <MDBCol\n className=\"ps-4\"\n style={{ position: \"relative\" }}\n >\n <TravelExperiencesStepCard\n isPremium={isPremium}\n cardData={el}\n setShow={setShowModalMap}\n />\n {shouldAddTransparency(id + 1) && (\n <div className={styles.gradient} />\n )}\n </MDBCol>\n </MDBRow>\n ))}\n {shouldBeExpandable() && (\n <MDBRow className=\"justify-content-center p-5\">\n <MDBCol className=\"d-inline-flex justify-content-center\">\n <MDBBtn\n className={`${\n isAllCardsVisible()\n ? styles.buttonMainActionRotate\n : styles.buttonMainAction\n } mx-2 shadow-0`}\n color=\"danger\"\n onClick={() => {\n // eslint-disable-next-line no-unused-expressions\n !isAllCardsVisible() &&\n TagManager.dataLayer(\n laodMore()\n );\n setVisibleCards(\n isAllCardsVisible()\n ? minimumVisibleCards\n : itineraries.length\n );\n window.scrollTo({\n top: travelExperiencesStepSection\n .current?.offsetTop,\n behavior: \"smooth\",\n });\n }}\n >\n {isAllCardsVisible()\n ? \"View Less\"\n : \"Load More\"}\n <ArrowDownSimpleLine />\n </MDBBtn>\n </MDBCol>\n </MDBRow>\n )}\n </MDBCol>\n </div>\n {!isMD && (\n <MDBCol\n size={5}\n xl={4}\n className={styles.divColMap}\n style={{ height: clientHeight }}\n >\n <div className={styles.divCollst}>\n <iframe\n id=\"map\"\n src={checkAtlasMap()}\n allow=\"geolocation\"\n className={styles.mapContainer}\n title=\"map\"\n style={{\n overflowY: \"hidden\",\n width: \"100%\",\n }}\n />\n </div>\n </MDBCol>\n )}\n </MDBRow>\n <ModalMap\n url={checkAtlasMap()}\n show={showModalMap}\n setShow={setShowModalMap}\n />\n <InfoModalDouble\n content={qualityPremiumContent}\n show={showInfoModal}\n setShow={setShowInfoModal}\n />\n </MDBContainer>\n );\n }\n);\n\nexport default TravelExperiencesStep;\n","import { FC, useCallback, useState } from \"react\";\nimport Image from \"next/image\";\nimport { MDBBtn, MDBCol, MDBRow } from \"mdb-react-ui-kit\";\nimport styles from \"../../styles/detail/DetailHotelCard.module.scss\";\nimport userInterfaceSvg from \"../../utils/svg-icon/userInterface\";\nimport socialAndBrandSvg from \"../../utils/svg-icon/socialAndBrand\";\nimport { HotelReadableTO } from \"../../models/detail\";\n\nconst PackageDetailHotelCard: FC<{\n packageAccommodation: HotelReadableTO;\n currentIndex: number;\n hotelGalleryHandler: (currentIndex: number) => void;\n isPremium: boolean;\n}> = ({\n packageAccommodation,\n currentIndex,\n hotelGalleryHandler,\n isPremium,\n}) => {\n const { StarFilled, StarLine } = userInterfaceSvg;\n const { SketchLine } = socialAndBrandSvg;\n\n const [coverError, setCoverError] = useState(false);\n\n const getStars = useCallback(() => {\n return Array.from(\n { length: +(packageAccommodation?.stars ?? \"0\") },\n (value, key) => <StarFilled key={key} />\n );\n }, [packageAccommodation?.stars]);\n\n return (\n <div\n className={`${styles.container}`}\n onClick={() => hotelGalleryHandler(currentIndex)}\n >\n <div className={styles.cardImageContainer}>\n <Image\n src={\n coverError\n ? \"/images/tours/across-italy-reduced.jpg\"\n : packageAccommodation.image\n }\n className={styles.imageDescription}\n alt=\"card-image\"\n fill\n onError={() => {\n setCoverError(true);\n }}\n />\n <div\n className={\n isPremium ? styles.tagPremium : styles.tagQuality\n }\n >\n <MDBRow className=\"me-3 ms-2\">\n <MDBCol\n size={5}\n center\n className=\"d-inline-flex px-1 justify-content-center\"\n >\n {isPremium ? <SketchLine /> : <StarLine />}\n </MDBCol>\n <MDBCol size={5} center className=\"d-inline-flex px-1\">\n {isPremium ? \"Premium\" : \"Quality\"}\n </MDBCol>\n </MDBRow>\n </div>\n <div className={styles.overlay} />\n </div>\n <div className={styles.cardDataContainer}>\n <div className={styles.cardDataContainer2}>\n <h3 className={styles.cardName}>\n {packageAccommodation.name}\n </h3>\n <div className={styles.starContainer}>{getStars()}</div>\n </div>\n <div className=\"w-100\">\n <div className={styles.descriptionDivider} />\n <MDBBtn\n className={styles.roomsButton}\n onClick={() => hotelGalleryHandler(currentIndex)}\n >\n <span>Check it out</span>\n </MDBBtn>\n </div>\n </div>\n </div>\n );\n};\n\nexport default PackageDetailHotelCard;\n","import Image from \"next/image\";\nimport { MDBCol, MDBContainer, MDBModal, MDBRow } from \"mdb-react-ui-kit\";\nimport SwiperClass from \"swiper\";\nimport { FC, useCallback, useEffect, useState } from \"react\";\nimport styles from \"../../styles/detail/DetailHotelGallery.module.scss\";\nimport packageDetailCustomSvg from \"../../utils/svg-icon/detailPackageCustom\";\nimport userInterfaceSvg from \"../../utils/svg-icon/userInterface\";\nimport { HotelReadableTO } from \"../../models/detail\";\nimport { useIsMD } from \"../../utils/hooks/useWindowSizes\";\nimport Carousel from \"../common/carousel/Carousel\";\nimport ButtonBack from \"../common/carousel/ButtonBack\";\nimport ButtonNext from \"../common/carousel/ButtonNext\";\nimport { TBreackpointsCarousel } from \"../../models/common/common\";\n\nconst PackageDetailHotelGallery: FC<{\n show: boolean;\n setShow: (el: boolean) => void;\n currentHotel: HotelReadableTO;\n // eslint-disable-next-line sonarjs/cognitive-complexity\n}> = ({ show, setShow, currentHotel }) => {\n const [readMore, setReadMore] = useState<boolean>(false);\n const [iconImageError, setIconImageError] = useState<number[]>([]);\n const [swiperClass, setSwiperClass] = useState<SwiperClass | null>(null);\n\n const { CloseLine, StarFilled } = userInterfaceSvg;\n const { Pointer } = packageDetailCustomSvg;\n\n const getStars = useCallback(() => {\n return Array.from(\n { length: +(currentHotel?.stars ?? \"0\") },\n (value, key) => <StarFilled key={key} />\n );\n }, [currentHotel?.stars]);\n\n const [render, setRender] = useState(false);\n\n useEffect(() => setRender(true), []);\n\n const isMD = useIsMD();\n\n const breackPointCarousel: TBreackpointsCarousel = {\n 0: {\n slidesPerView: 1.3,\n height: 533,\n spaceBetween: 12,\n },\n 576: {\n slidesPerView: 2,\n height: 533,\n spaceBetween: 12,\n },\n 768: {\n slidesPerView: 2.5,\n height: 533,\n spaceBetween: 12,\n },\n 992: {\n slidesPerView: 3,\n height: 533,\n spaceBetween: 12,\n },\n 1200: {\n slidesPerView: 3,\n spaceBetween: 32,\n },\n 1400: {\n slidesPerView: 3,\n spaceBetween: 32,\n },\n 1600: {\n slidesPerView: 3,\n spaceBetween: 32,\n },\n 1920: {\n slidesPerView: 4,\n spaceBetween: 32,\n },\n };\n\n return render ? (\n <MDBModal\n className={`${styles.modal} p-5`}\n show={show}\n setShow={setShow}\n staticBackdrop\n >\n <MDBContainer className={styles.galleryContainer}>\n <MDBRow>\n <MDBCol className=\"d-flex justify-content-end\">\n <div onClick={() => setShow(false)}>\n <span className={styles.interactionSvgSpan}>\n <CloseLine />\n </span>\n </div>\n </MDBCol>\n </MDBRow>\n <MDBRow>\n <MDBCol className=\"d-flex justify-content-between mt-5 px-5\">\n <div>\n {isMD && (\n <div\n className={` ${styles.starContainer} d-flex justify-content-start`}\n >\n {getStars()}\n </div>\n )}\n <h3 className={styles.title}>\n {currentHotel?.name}\n </h3>\n <div className=\"d-flex align-items-center\">\n <span className={styles.pointerContainer}>\n <Pointer />\n </span>\n <span className={styles.subtitle}>\n {currentHotel?.address}\n </span>\n\n {!isMD && (\n <>\n <div className={styles.starContainer}>\n {getStars()}\n </div>\n <span className={styles.subtitle}>\n stars hotel\n </span>\n </>\n )}\n </div>\n </div>\n {!isMD && (\n <MDBRow className=\"mt-2\">\n <MDBCol center className=\"pe-0\">\n <ButtonBack swiperClass={swiperClass} />\n </MDBCol>\n <MDBCol center className=\"ps-0\">\n <ButtonNext swiperClass={swiperClass} />\n </MDBCol>\n </MDBRow>\n )}\n </MDBCol>\n </MDBRow>\n <MDBRow>\n <MDBCol className=\"px-5 mt-4\" style={{ height: \"375px\" }}>\n <Carousel\n setSwiperClass={setSwiperClass}\n visibleSlides={3}\n centerInsufficientSlides={false}\n breakpoints={breackPointCarousel}\n classNameCarousel=\"h-100\"\n >\n {currentHotel?.gallery.map((el, idx) => (\n <div\n key={el}\n className=\"position-relative h-100\"\n >\n <Image\n src={\n iconImageError.includes(idx)\n ? \"/images/tours/across-italy-reduced.jpg\"\n : el\n }\n alt=\"hotel picture\"\n fill\n className={styles.galleryImage}\n onError={() => {\n setIconImageError(\n prevImageErrors => [\n ...prevImageErrors,\n idx,\n ]\n );\n }}\n />\n </div>\n ))}\n </Carousel>\n </MDBCol>\n </MDBRow>\n <MDBRow>\n <MDBCol lg={9} className=\"px-5\">\n <div className=\"mt-4\">\n <p\n className={`${\n !readMore && styles.multilineEllipsis\n }`}\n >\n {currentHotel?.description}\n </p>\n <span\n className={`${styles.cardSecondaryText} me-2`}\n >\n {readMore ? \"Read less \" : \"Read more\"}\n </span>\n\n {readMore ? (\n <span\n onClick={() => setReadMore(!readMore)}\n className={styles.spanMoreInfo}\n >\n <userInterfaceSvg.ArrowUpSimpleLine />\n </span>\n ) : (\n <span\n onClick={() => setReadMore(!readMore)}\n className={styles.spanMoreInfo}\n >\n <userInterfaceSvg.ArrowDownSimpleLine />\n </span>\n )}\n </div>\n </MDBCol>\n </MDBRow>\n </MDBContainer>\n </MDBModal>\n ) : (\n <div />\n );\n};\n\nexport default PackageDetailHotelGallery;\n","import { MDBCol, MDBRow } from \"mdb-react-ui-kit\";\nimport { FC, ReactNode, useEffect, useMemo, useState } from \"react\";\nimport SwiperClass from \"swiper\";\nimport ButtonBack from \"../../common/carousel/ButtonBack\";\nimport ButtonNext from \"../../common/carousel/ButtonNext\";\nimport Carousel from \"../../common/carousel/Carousel\";\nimport { useIsMD } from \"../../../utils/hooks/useWindowSizes\";\nimport { TBreackpointsCarousel } from \"../../../models/common/common\";\n\nconst OvernightCarousel: FC<{\n visibleCards: ReactNode[];\n resetCarousel: boolean;\n setResetCarousel: (el: boolean) => void;\n}> = ({ visibleCards, resetCarousel, setResetCarousel }) => {\n const [swiperClass, setSwiperClass] = useState<SwiperClass | null>(null);\n\n useEffect(() => {\n if (resetCarousel) {\n setResetCarousel(false);\n }\n }, [visibleCards]);\n\n const isMD = useIsMD();\n\n const length = useMemo(() => visibleCards.length, [visibleCards]);\n\n const breackPointCarousel: TBreackpointsCarousel = {\n 0: {\n slidesPerView: 1.3,\n height: 533,\n spaceBetween: 12,\n },\n 576: {\n slidesPerView: 2,\n height: 533,\n spaceBetween: 12,\n },\n 768: {\n slidesPerView: 2.5,\n height: 533,\n spaceBetween: 12,\n },\n 992: {\n slidesPerView: 3,\n height: 533,\n spaceBetween: 12,\n },\n 1200: {\n slidesPerView: 3,\n spaceBetween: 32,\n },\n 1400: {\n slidesPerView: 3,\n spaceBetween: 32,\n },\n 1600: {\n slidesPerView: 4,\n spaceBetween: 32,\n },\n 1920: {\n slidesPerView: 5,\n spaceBetween: 32,\n },\n };\n\n return (\n <MDBRow className=\"py-2 mx-2 mt-5 mt-md-2 justify-content-center\">\n {!isMD && length > 3 && (\n <MDBCol center size={1}>\n <ButtonBack swiperClass={swiperClass} />\n </MDBCol>\n )}\n <MDBCol size={12} lg={10}>\n {length > 0 ? (\n <Carousel\n setSwiperClass={setSwiperClass}\n visibleSlides={3}\n breakpoints={breackPointCarousel}\n >\n {visibleCards}\n </Carousel>\n ) : (\n \"\"\n )}\n </MDBCol>\n {!isMD && length > 3 && (\n <MDBCol center size={1}>\n <ButtonNext swiperClass={swiperClass} />\n </MDBCol>\n )}\n </MDBRow>\n );\n};\n\nexport default OvernightCarousel;\n","import {\n MDBBtn,\n MDBCol,\n MDBContainer,\n MDBRow,\n MDBSwitch,\n} from \"mdb-react-ui-kit\";\nimport {\n forwardRef,\n ReactElement,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport TagsPackageType from \"@/components/detail/tags/TagsPackageType\";\nimport { useIsSM } from \"@/utils/hooks/useWindowSizes\";\nimport { DestinationReadableTO } from \"../../../models/detail\";\nimport styles from \"../../../styles/detail/DetailAccomodations.module.scss\";\nimport {\n accomodationsTitle,\n accomodationSubTitle,\n} from \"../../../utils/mockData/detailMocks\";\nimport { qualityPremiumContent } from \"../../../utils/mockData/infoMock\";\nimport contactsSvg from \"../../../utils/svg-icon/contacts\";\nimport InfoModalDouble from \"../../common/info/InfoModalDouble\";\nimport SectionTitle from \"../../common/SectionTitle\";\nimport PackageDetailHotelCard from \"../PackageDetailHotelCard\";\nimport PackageDetailHotelGallery from \"../PackageDetailHotelGallery\";\nimport OvernightCarousel from \"./OvernightCarousel\";\nimport useForwardRef from \"../../../utils/hooks/useForwardRef\";\nimport { useStore } from \"../../../store\";\nimport useOnScreen from \"../../../utils/hooks/useOnScreen\";\nimport { EDetailSection, ETypePackage } from \"../../../models/common/enums\";\n\nconst OvernightAccommodations = forwardRef<\n HTMLDivElement,\n {\n nightDestinations: DestinationReadableTO[];\n isPremium: boolean;\n setIsPremium: (el: boolean) => void;\n typePackage: ETypePackage;\n showAccomodations: boolean;\n }\n>(\n (\n {\n nightDestinations,\n isPremium,\n setIsPremium,\n typePackage,\n showAccomodations,\n },\n ref\n // eslint-disable-next-line sonarjs/cognitive-complexity\n ): ReactElement => {\n const overNightRef = useForwardRef<HTMLInputElement>(ref);\n const dispatch = useStore(state => state.dispatchPackage);\n\n const { InfoCircleLine } = contactsSvg;\n const cityAccommodations = useMemo(\n () =>\n nightDestinations\n .filter(\n nightDestination =>\n nightDestination.showHotel &&\n (isPremium\n ? nightDestination.premiumHotelsPresent\n : nightDestination.qualityHotelsPresent)\n )\n .map(el => el.city),\n [isPremium, nightDestinations]\n );\n const [showModal, setShowModal] = useState<boolean>(false);\n const [showInfoModal, setShowInfoModal] = useState<boolean>(false);\n const [resetCarousel, setResetCarousel] = useState<boolean>(false);\n const [selectedCity, setSelectedCity] = useState<string>(\n cityAccommodations[0]\n );\n const [selectedHotel, setSelectedHotel] = useState<number>(0);\n\n const filterAccommodations = useMemo(\n () =>\n nightDestinations\n .filter(el => el.showHotel)\n .find(el => el.city === selectedCity)\n ?.hotels?.filter(\n value =>\n value?.option ===\n (isPremium ? \"PREMIUM\" : \"QUALITY\")\n ) ?? [],\n [nightDestinations, selectedCity, isPremium]\n );\n\n const isOnScreen = useOnScreen(overNightRef);\n\n const hotelGalleryHandler = (selectedIndex: number) => {\n setSelectedHotel(selectedIndex);\n setShowModal(true);\n };\n\n const handleTabClick = (el: string) => {\n setResetCarousel(true);\n setSelectedCity(el);\n };\n\n const getVisibleCards = useCallback(() => {\n return filterAccommodations.map((el, idx) => (\n /* eslint-disable react/no-array-index-key */\n <PackageDetailHotelCard\n key={`${idx}_${el.name}`}\n packageAccommodation={el}\n currentIndex={idx}\n hotelGalleryHandler={hotelGalleryHandler}\n isPremium={isPremium}\n />\n ));\n }, [selectedCity, isPremium]);\n useEffect(() => {\n if (isOnScreen) {\n dispatch({\n type: \"SET_CURRENT_SECTION\",\n payload: EDetailSection.ACCOMMODATION,\n });\n }\n }, [isOnScreen]);\n\n const isSM = useIsSM();\n\n return showAccomodations ? (\n <div className={styles.customContainer} ref={overNightRef}>\n <div className={styles.accomodationContainer}>\n {isSM &&\n typePackage === ETypePackage.QUALITY_AND_PREMIUM && (\n <>\n <div className=\"justify-content-center\">\n <div\n className={styles.info}\n role=\"button\"\n tabIndex={0}\n onClick={() => setShowInfoModal(true)}\n >\n <p>Choose your esperienza</p>\n <InfoCircleLine />\n </div>\n </div>\n <div className=\"justify-content-center mt-3\">\n <div className=\"d-flex justify-content-center mt-1 mb-2\">\n <span\n className={\n !isPremium\n ? `pe-3 ${styles.cardSecondaryTextBold}`\n : `pe-3 ${styles.cardSecondaryText}`\n }\n >\n Quality\n </span>\n <MDBSwitch\n checked={isPremium}\n onChange={() => {\n setIsPremium(!isPremium);\n const url = new URL(\n window.location.href\n );\n url.searchParams.set(\n \"isPremium\",\n !isPremium as unknown as string\n );\n window.history.replaceState(\n null,\n \"\",\n url\n );\n }}\n className={styles.customSwitch}\n />\n <span\n className={\n isPremium\n ? `ps-3 ${styles.cardSecondaryTextBold}`\n : `ps-3 ${styles.cardSecondaryText}`\n }\n >\n Premium\n </span>\n </div>\n </div>\n </>\n )}\n\n {isSM &&\n typePackage !== ETypePackage.QUALITY_AND_PREMIUM && (\n <TagsPackageType\n isPremium={\n typePackage === ETypePackage.ONLY_PREMIUM\n }\n />\n )}\n\n <div>\n <SectionTitle\n sectionTitle={{\n title: accomodationsTitle,\n subTitle: accomodationSubTitle,\n classNameContainer: \"p-0 m-0\",\n alignment: \"justify-content-center text-center\",\n titleColumnSize: 6,\n classNameTitle: styles.titleAccodomodations,\n classNameSubTitle:\n styles.subtitleAccodomodations,\n }}\n />\n </div>\n {!isSM &&\n typePackage === ETypePackage.QUALITY_AND_PREMIUM && (\n <>\n <div className=\"justify-content-center\">\n <div\n className={styles.info}\n role=\"button\"\n tabIndex={0}\n onClick={() => setShowInfoModal(true)}\n >\n <p>Choose your esperienza</p>\n <InfoCircleLine />\n </div>\n </div>\n <div className=\"justify-content-center mt-3\">\n <div className=\"d-flex justify-content-center mt-1 mb-2\">\n <span\n className={\n !isPremium\n ? `pe-3 ${styles.cardSecondaryTextBold}`\n : `pe-3 ${styles.cardSecondaryText}`\n }\n >\n Quality\n </span>\n <MDBSwitch\n checked={isPremium}\n onChange={() => {\n setIsPremium(!isPremium);\n const url = new URL(\n window.location.href\n );\n url.searchParams.set(\n \"isPremium\",\n !isPremium as unknown as string\n );\n window.history.replaceState(\n null,\n \"\",\n url\n );\n }}\n className={styles.customSwitch}\n />\n <span\n className={\n isPremium\n ? `ps-3 ${styles.cardSecondaryTextBold}`\n : `ps-3 ${styles.cardSecondaryText}`\n }\n >\n Premium\n </span>\n </div>\n </div>\n </>\n )}\n\n {!isSM &&\n typePackage !== ETypePackage.QUALITY_AND_PREMIUM && (\n <TagsPackageType\n isPremium={\n typePackage === ETypePackage.ONLY_PREMIUM\n }\n />\n )}\n <MDBRow className=\"d-flex justify-content-center p-md-0\">\n <div\n className={`d-flex justify-content-md-center ms-4 mx-md-5 ${styles.carousel}`}\n >\n {cityAccommodations.map((el, index) => (\n <MDBCol md={2} lg={1} size={4} className=\"mx-2\">\n <MDBBtn\n key={`${index}_${el}`}\n onClick={() => handleTabClick(el)}\n className={\n selectedCity === el\n ? styles.cityButtonSelected\n : styles.cityButton\n }\n >\n <p>{el}</p>\n </MDBBtn>\n </MDBCol>\n ))}\n </div>\n </MDBRow>\n <MDBContainer fluid className=\"p-0\">\n <OvernightCarousel\n visibleCards={getVisibleCards()}\n resetCarousel={resetCarousel}\n setResetCarousel={setResetCarousel}\n />\n </MDBContainer>\n </div>\n <PackageDetailHotelGallery\n show={showModal}\n setShow={setShowModal}\n currentHotel={filterAccommodations.at(selectedHotel)!}\n />\n <InfoModalDouble\n content={qualityPremiumContent}\n show={showInfoModal}\n setShow={setShowInfoModal}\n />\n </div>\n ) : (\n <div ref={overNightRef} />\n );\n }\n);\n\nexport default OvernightAccommodations;\n","import { MDBBtn, MDBCol, MDBContainer, MDBRow } from \"mdb-react-ui-kit\";\nimport { FC, useMemo, useState } from \"react\";\nimport Image from \"next/image\";\nimport dynamic from \"next/dynamic\";\nimport {\n ISectionTitle,\n TBreackpointsCarousel,\n} from \"../../models/common/common\";\nimport styles from \"../../styles/detail/Detail.PhotoGallery.module.scss\";\nimport {\n photoGallerySubTitle,\n photoGalleryTitle,\n} from \"../../utils/mockData/detailMocks\";\nimport { randomUid } from \"../../utils/randomIds\";\nimport generalSvg from \"../../utils/svg-icon/general\";\nimport SectionTitle from \"../common/SectionTitle\";\nimport { useIsMD } from \"../../utils/hooks/useWindowSizes\";\nimport Carousel from \"../common/carousel/Carousel\";\n\nconst PhotoGalleryModal = dynamic(() => import(\"./PhotoGalleryModal\"), {\n ssr: false,\n});\n\nconst PhotoGallery: FC<{\n photoUrls: string[];\n}> = ({ photoUrls }) => {\n const { ImageLine } = generalSvg;\n\n const [showModal, setShowModal] = useState(false);\n\n const [imageError, setImageError] = useState<number[]>([]);\n const defaultImage = \"/images/tours/across-italy-reduced.jpg\";\n const isMD = useIsMD();\n const [indexPhotoClicked, setIndexPhotoClicked] = useState(0);\n\n const photoLinks = useMemo(\n () =>\n (isMD ? photoUrls : photoUrls.slice(1, 5)).map(el => {\n return { id: randomUid(), url: el };\n }),\n [photoUrls, isMD]\n );\n\n const title: ISectionTitle = {\n title: photoGalleryTitle,\n subTitle: photoGallerySubTitle,\n alignment: \"justify-content-start text-start\",\n titleColumnSize: 12,\n spaceBetween: 2,\n classNameContainer: \"py-3\",\n };\n\n const breackPointCarousel: TBreackpointsCarousel = {\n 0: {\n slidesPerView: 1.3,\n spaceBetween: 20,\n },\n 576: {\n slidesPerView: 2,\n spaceBetween: 20,\n },\n 768: {\n slidesPerView: 2.5,\n height: 533,\n spaceBetween: 12,\n },\n 992: {\n slidesPerView: 3,\n height: 533,\n spaceBetween: 12,\n },\n };\n\n const openModal = (index: number) => {\n setIndexPhotoClicked(index + 1);\n setShowModal(true);\n };\n\n return (\n <>\n <MDBContainer fluid className={` ${styles.container} py-5 px-0`}>\n <MDBRow className=\"d-flex justify-content-center\">\n <MDBCol size={10}>\n <MDBCol size={10}>\n <SectionTitle sectionTitle={title} />\n </MDBCol>\n </MDBCol>\n </MDBRow>\n <MDBRow\n className={`${styles.rowImageContainer} d-flex justify-content-center`}\n >\n <MDBCol size={12} lg={10} className=\"ps-4 ps-lg-0\">\n <MDBRow className={`${styles.rowImage} h-100`}>\n <MDBCol\n size={12}\n lg={6}\n className=\"position-relative p-2 rounded-7\"\n >\n {!isMD && (\n <div\n className=\"position-relative p-2 h-100\"\n onClick={() => openModal(-1)}\n >\n <Image\n src={\n imageError.includes(0)\n ? defaultImage\n : photoUrls[0]\n }\n className={` ${styles.imageGallery} img-fluid rounded-7 shadow-4`}\n alt=\"card-image\"\n fill\n onError={() => {\n setImageError(prevState => [\n ...prevState,\n 0,\n ]);\n }}\n />\n </div>\n )}\n {isMD && (\n <Carousel\n visibleSlides={3}\n breakpoints={breackPointCarousel}\n >\n {photoLinks.map((el, idx) => (\n <div\n className={` ${styles.slideContainer} mx-3 h-100 w-100`}\n onClick={() =>\n openModal(idx - 1)\n }\n key={el.id}\n >\n <div\n className={` ${styles.slideContainer} position-relative p-2 h-100`}\n >\n <Image\n src={\n imageError.includes(\n idx + 1\n )\n ? defaultImage\n : el.url\n }\n className={` ${styles.imageGallery} img-fluid rounded-7 shadow-4`}\n alt=\"card-image\"\n fill\n onError={() => {\n setImageError(\n prevState => [\n ...prevState,\n idx + 1,\n ]\n );\n }}\n />\n </div>\n </div>\n ))}\n </Carousel>\n )}\n <MDBBtn\n className={`${styles.buttonGallery} position-absolute bottom-0 start-0 m-5 d-flex align-items-center shadow-0`}\n onClick={() => openModal(-1)}\n >\n <ImageLine className=\"align-self-center me-2\" />\n Show all photos\n </MDBBtn>\n </MDBCol>\n {!isMD && (\n <MDBCol size={6}>\n <MDBRow className=\"h-100\">\n {photoLinks.map((el, index) => (\n <MDBCol\n key={el.id}\n size={6}\n className=\"square rounded-7 position-relative p-2\"\n >\n <div\n className=\"position-relative p-2 h-100\"\n onClick={() =>\n openModal(index)\n }\n >\n <Image\n src={\n imageError.includes(\n index + 1\n )\n ? defaultImage\n : el.url\n }\n className={` ${styles.imageGallery} img-fluid rounded-7 shadow-4`}\n alt=\"card-image\"\n fill\n onError={() => {\n setImageError(\n prevState => [\n ...prevState,\n index + 1,\n ]\n );\n }}\n />\n </div>\n </MDBCol>\n ))}\n </MDBRow>\n </MDBCol>\n )}\n </MDBRow>\n </MDBCol>\n </MDBRow>\n </MDBContainer>\n {showModal && (\n <PhotoGalleryModal\n photoUrls={photoUrls}\n onClose={() => setShowModal(false)}\n indexPhotoClicked={indexPhotoClicked}\n />\n )}\n </>\n );\n};\n\nexport default PhotoGallery;\n","import { FC, useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport useRelatedToursData from \"@/utils/queries/hooks/useRelatedTours\";\nimport styles from \"@/styles/detail/DetailRecap.module.scss\";\nimport useSticky from \"@/hooks/useSticky\";\nimport { TourResponseTO } from \"@/models/detail\";\nimport { useShouldRenderArrayFC } from \"@/hooks/useShouldRenderArrayFC\";\nimport { EDetailSection, ERoomType, ETypePackage } from \"@/models/common/enums\";\nimport { useIsMD } from \"@/hooks/useWindowSizes\";\nimport { useRouter } from \"next/router\";\nimport { getOriginalAmount } from \"@/store/checkout/selector-checkout\";\nimport { reviewsContainer } from \"@/utils/constants\";\nimport useHomeData from \"@/utils/queries/hooks/useHomeData\";\nimport _ from \"lodash\";\nimport KeepInTouch from \"../common/KeepInTouch\";\nimport TikTokSection from \"../home/TikTokSection\";\nimport InterestedIn from \"./InterestedIn\";\nimport PackageDetailHead from \"./PackageDetailHead\";\nimport WhyChoosePlay from \"./WhyChoosePlay\";\nimport PackageDetailRecap from \"./PackageDetailRecap\";\nimport PackageDetailBooking from \"./DetailBooking/PackageDetailBooking\";\nimport TravelExperiencesStep from \"./TravelExperiencesStep\";\nimport Brochures from \"../home/brochures/Brochures\";\nimport OvernightAccommodations from \"./OvernightAccomodations/OvernightAccomodations\";\nimport TourReview from \"../home/TourReviews\";\nimport PhotoGallery from \"./PhotoGallery\";\nimport useVideoReviewData from \"../../utils/queries/hooks/useVideoReviewData\";\nimport { useStore } from \"../../store\";\nimport PackageDetailNavbar from \"./PackageDetailNavbar\";\n\nconst PackageDetailBody: FC<{\n packageDetail: TourResponseTO;\n initPremium: boolean;\n}> = ({ packageDetail, initPremium }) => {\n const dispatch = useStore(state => state.dispatchPackage);\n const currentSection = useStore(state => state.packageState.currentSection);\n const dispatchCheckout = useStore(state => state.dispatchCheckout);\n const originalAmount = useStore(getOriginalAmount);\n const [isPremium, setIsPremium] = useState<boolean>(initPremium);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars\n const [isPromo, setIsPromo] = useState<boolean>(false);\n const travelExperiencesStepSection = useRef<HTMLDivElement>(null);\n const accommodationsSection = useRef<HTMLDivElement>(null);\n const generalRef = useRef<HTMLDivElement>(null);\n const hiwRef = useRef<HTMLDivElement>(null);\n const { data: videoReviews } = useVideoReviewData();\n const { data: homeData } = useHomeData();\n const relatedTours = useRelatedToursData(\n packageDetail.quality.tourId,\n isPremium\n );\n const [typePackage, setTipePackage] = useState<ETypePackage>();\n const [areHotelsAvailable, setAreHotelsAvailable] =\n useState<boolean>(false);\n\n const getPackagePremiumQuality = () => {\n if (packageDetail.onlyQuality) {\n setIsPremium(false);\n return setTipePackage(ETypePackage.ONLY_QUALITY);\n }\n if (packageDetail.onlyPremium) {\n setIsPremium(true);\n return setTipePackage(ETypePackage.ONLY_PREMIUM);\n }\n return setTipePackage(ETypePackage.QUALITY_AND_PREMIUM);\n };\n\n // const dispatchCheckout = useStore(state => state.dispatchCheckout);\n\n const getCurrentPackage = () =>\n isPremium ? packageDetail?.premium : packageDetail?.quality;\n\n const isVideoAvailable = () =>\n !getCurrentPackage().coverVideo.endsWith(\"/\");\n\n const sortedItineraries = useMemo(\n () =>\n getCurrentPackage().itineraries.sort(\n (first, second) => +first.day - +second.day\n ),\n [isPremium]\n );\n\n useEffect(() => {\n dispatchCheckout({\n type: \"SET_CLICKDATE\",\n payload: false,\n });\n\n dispatchCheckout({\n type: \"SET_CLICKLANGUAGE\",\n payload: true,\n });\n dispatchCheckout({\n type: \"SET_CLICKCONFIRMDATE\",\n payload: false,\n });\n }, [dispatchCheckout]);\n\n useEffect(() => {\n dispatchCheckout({\n type: \"SET_COUPON\",\n payload: {\n code: \"\",\n value: 0,\n },\n });\n\n dispatchCheckout({\n type: \"SET_TOTAL_AMOUNT\",\n payload: originalAmount,\n });\n }, [dispatchCheckout, originalAmount]);\n\n const handleNavigation = (section: EDetailSection) => {\n let currentSectionOffsetTop = null;\n if (section === EDetailSection.GENERAL) {\n currentSectionOffsetTop =\n (generalRef.current?.offsetTop ?? 180) - 180;\n } else if (section === EDetailSection.ITINERARY) {\n let pixelToRemove = 240;\n if (currentSection !== EDetailSection.GENERAL) {\n pixelToRemove = 180;\n }\n currentSectionOffsetTop =\n (travelExperiencesStepSection.current?.offsetTop ?? 180) -\n pixelToRemove;\n } else if (section === EDetailSection.ACCOMMODATION) {\n let pixelToRemove = 280;\n if (currentSection !== EDetailSection.GENERAL) {\n pixelToRemove = 180;\n }\n currentSectionOffsetTop =\n (accommodationsSection.current?.offsetTop ?? 180) -\n pixelToRemove;\n } else if (section === EDetailSection.HIW) {\n currentSectionOffsetTop = (hiwRef.current?.offsetTop ?? 180) - 180;\n }\n\n dispatch({\n type: \"SET_CURRENT_SECTION\",\n payload: section,\n });\n\n window.scrollTo({\n top: currentSectionOffsetTop ?? 180,\n behavior: \"smooth\",\n });\n };\n\n const router = useRouter();\n\n useEffect(() => {\n const roomParam = router.query.rooms;\n if (roomParam) {\n dispatchCheckout({\n type: \"UPDATE_ORDER_DATA\",\n payload: JSON.parse(roomParam as string),\n });\n dispatchCheckout({\n type: \"SET_ROOMS_AND_GENERATE_TRAVELERS\",\n payload: JSON.parse(roomParam as string),\n });\n } else {\n dispatchCheckout({\n type: \"SET_ROOMS_AND_GENERATE_TRAVELERS\",\n payload: [\n {\n type: ERoomType.DOUBLE,\n adults: 1,\n children: [],\n newborns: 0,\n },\n ],\n });\n }\n }, [dispatchCheckout, router]);\n\n useEffect(() => {\n getPackagePremiumQuality();\n dispatchCheckout({\n type: \"SET_TOUR_DETAIL\",\n payload: isPremium ? packageDetail.premium : packageDetail.quality,\n });\n }, [packageDetail]);\n\n const handleHashChange = useCallback((event?: HashChangeEvent) => {\n // la navigazione diretta per id non è possibile a causa della struttura della pagina e del suo contenuto.\n // E' stato simulato un comportamento simile tramite una gestione manuale\n const hashToSearch =\n router.asPath.split(\"#\")[1] ?? event?.newURL.split(\"#\")[1];\n if (hashToSearch && hashToSearch === reviewsContainer.hash) {\n const tourReviewsEl = document.getElementById(reviewsContainer.id);\n if (tourReviewsEl) {\n setTimeout(() => {\n const offsetTop = tourReviewsEl.offsetTop - 250;\n window.scrollTo({\n top: offsetTop,\n });\n }, 1500);\n }\n }\n }, []);\n\n useEffect(() => {\n handleHashChange();\n window.addEventListener(\"hashchange\", event => handleHashChange(event));\n return () => {\n window.removeEventListener(\"hashchange\", handleHashChange);\n };\n }, [router.asPath]);\n\n useEffect(() => {\n const nightDestinations = _.merge(\n packageDetail?.premium.nightDestinations,\n packageDetail?.quality.nightDestinations\n );\n setAreHotelsAvailable(\n !!nightDestinations\n .filter(nightDestination => nightDestination.showHotel)\n .map(nightDestination => nightDestination.hotels).length\n );\n }, []);\n\n const { sticky, stickyRef } = useSticky();\n\n return (\n <div className=\"minWidth100vwFromXL\">\n <PackageDetailHead\n packageDetail={getCurrentPackage()}\n days={sortedItineraries.at(-1)?.day ?? \"1\"}\n isPromo={isPromo}\n isPremium={isPremium}\n setIsPremium={setIsPremium}\n typePackage={typePackage!}\n showAccomodations={\n !packageDetail.requestAQuote && areHotelsAvailable\n }\n isVideoAvailable={isVideoAvailable()}\n />\n {!useIsMD() && (\n <PackageDetailRecap\n handleNavigation={handleNavigation}\n packageDetail={getCurrentPackage()}\n days={sortedItineraries.at(-1)?.day ?? \"1\"}\n showAccomodations={\n !packageDetail.requestAQuote && areHotelsAvailable\n }\n isRequestAQuote={packageDetail.requestAQuote}\n />\n )}\n {useIsMD() && (\n <div\n ref={stickyRef}\n className={`w-100 ${styles.navContainer} ${\n sticky && styles.isSticky\n }`}\n >\n <PackageDetailNavbar\n showAccomodations={\n !packageDetail.requestAQuote && areHotelsAvailable\n }\n isRequestAQuote={packageDetail.requestAQuote}\n handleNavigation={handleNavigation}\n />\n </div>\n )}\n <PackageDetailBooking\n ref={generalRef}\n days={sortedItineraries.at(-1)?.day ?? \"1\"}\n packageDetail={getCurrentPackage()}\n isPremium={isPremium}\n setIsPremium={setIsPremium}\n typePackage={typePackage!}\n pricePremium={+packageDetail.premium.price}\n priceQuality={+packageDetail.quality.price}\n packagePremium={packageDetail.premium}\n packageQuality={packageDetail.quality}\n isRequestAQuote={packageDetail.requestAQuote}\n />\n <TravelExperiencesStep\n ref={travelExperiencesStepSection}\n itineraries={sortedItineraries}\n isPremium={isPremium}\n setIsPremium={setIsPremium}\n typePackage={typePackage!}\n packageDetail={getCurrentPackage()}\n />\n <Brochures />\n <OvernightAccommodations\n ref={accommodationsSection}\n nightDestinations={getCurrentPackage().nightDestinations}\n isPremium={isPremium}\n setIsPremium={setIsPremium}\n typePackage={typePackage!}\n showAccomodations={\n !packageDetail.requestAQuote && areHotelsAvailable\n }\n />\n {useShouldRenderArrayFC(getCurrentPackage().gallery) && (\n <PhotoGallery photoUrls={getCurrentPackage().gallery!} />\n )}\n {useShouldRenderArrayFC(getCurrentPackage().reviews) && (\n <TourReview reviewContents={getCurrentPackage().reviews!} />\n )}\n <WhyChoosePlay ref={hiwRef} />\n {videoReviews && (\n <TikTokSection\n videoReviews={videoReviews}\n wordingsDelta={homeData?.staticMedia.videoReviews}\n />\n )}\n {useShouldRenderArrayFC(relatedTours) && (\n <InterestedIn content={relatedTours!} />\n )}\n <KeepInTouch />\n </div>\n );\n};\n\nexport default PackageDetailBody;\n","import {\n dehydrate,\n DehydratedState,\n QueryClient,\n useQuery,\n} from \"@tanstack/react-query\";\nimport { GetServerSideProps, NextPage } from \"next\";\nimport { useRouter } from \"next/router\";\nimport { useEffect } from \"react\";\nimport adapterTourViewItemGAnalytics from \"@/models/tour\";\nimport {\n getBrochureData,\n getExcludedDaysSessionByTitle,\n getNavBarData,\n getPackageDetailByTitle,\n getRelatedByTitle,\n getVideoReviewsData,\n} from \"@/utils/queries\";\n\nimport { TourResponseTO } from \"@/models/detail\";\nimport { OpenGraph } from \"next-seo/lib/types\";\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport TagManager from \"react-gtm-module\";\nimport { viewItem } from \"@/utils/analytics/tagmanager\";\nimport Layout from \"../../components/common/Layout\";\nimport PackageDetailBody from \"../../components/detail/PackageDetailBody\";\n\nconst getOpenGraphData = (\n packageDetail: TourResponseTO | undefined\n): OpenGraph => {\n if (packageDetail) {\n return {\n title: packageDetail.metadata?.title,\n description: packageDetail.metadata?.metaDescription,\n url: packageDetail.metadata?.urlCanonical,\n images: [\n {\n url: packageDetail.quality.coverImage,\n alt: packageDetail.metadata?.altHeadImage,\n },\n {\n url: packageDetail.quality.whatWillYouSeeImage,\n alt: packageDetail.metadata?.altWhatWillYouSeeImage,\n },\n ],\n };\n }\n return {};\n};\n\nconst PackageDetail: NextPage<{ isPremium: boolean }> = ({ isPremium }) => {\n const router = useRouter();\n const { slug } = router.query;\n\n const { data: packageDetail } = useQuery({\n queryKey: [\"packageDetailByTitle\"],\n queryFn: () => getPackageDetailByTitle(slug?.[0] as string),\n refetchInterval: false,\n enabled: !!slug?.[0],\n });\n\n useEffect(() => {\n if (packageDetail) {\n const prop = adapterTourViewItemGAnalytics(packageDetail);\n\n TagManager.dataLayer(viewItem(prop));\n }\n }, [packageDetail]);\n\n const metadata = getOpenGraphData(packageDetail);\n\n return (\n <Layout\n metaTags={metadata}\n seoKeywords={packageDetail?.quality.keywords}\n >\n <PackageDetailBody\n packageDetail={packageDetail!}\n initPremium={isPremium}\n />\n </Layout>\n );\n};\n\nexport const getServerSideProps: GetServerSideProps = async (\n ctx\n): Promise<{\n props: {\n dehydratedState: DehydratedState;\n isPremium: boolean;\n };\n}> => {\n const queryClient = new QueryClient();\n\n const isPremium =\n typeof ctx.query.isPremium === \"string\"\n ? ctx.query.isPremium\n : ctx.query.isPremium?.at(0);\n\n const booleanify = (value: string | undefined): boolean => {\n const truthy: string[] = [\"true\", \"True\", \"1\"];\n\n return truthy.includes(value ?? \"false\");\n };\n\n await Promise.all([\n await queryClient.prefetchQuery([\"navBar\"], getNavBarData),\n await queryClient.prefetchQuery([\"brochures\"], getBrochureData),\n await queryClient.prefetchQuery([\"videoReview\"], getVideoReviewsData),\n await queryClient.prefetchQuery(\n [\"relatedToursByTitle\", ctx.params!.slug![0]],\n () => getRelatedByTitle(ctx.params!.slug![0])\n ),\n await queryClient.prefetchQuery([\"packageDetailByTitle\"], () =>\n getPackageDetailByTitle(ctx.params!.slug![0])\n ),\n await queryClient.prefetchQuery(\n [\"exclusionDaysByTitle\", ctx?.params?.slug?.[0]],\n () =>\n getExcludedDaysSessionByTitle(\n ctx?.params?.slug?.[0] || \"\",\n true\n )\n ),\n ]);\n\n return {\n props: {\n dehydratedState: dehydrate(queryClient),\n isPremium: booleanify(isPremium),\n },\n };\n};\n\nexport default PackageDetail;\n","var _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgLine = function SvgLine(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M12 20a8 8 0 1 0 0-16 8 8 0 0 0 0 16Zm0 2c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10Z\",\n fill: \"#777E91\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11 7a1 1 0 1 1 2 0 3 3 0 0 1 3 3 1 1 0 1 1-2 0 1 1 0 0 0-1-1h-2.257a.743.743 0 0 0-.235 1.449l3.616 1.205A2.743 2.743 0 0 1 13.257 17H13a1 1 0 1 1-2 0 3 3 0 0 1-3-3 1 1 0 1 1 2 0 1 1 0 0 0 1 1h2.257a.743.743 0 0 0 .235-1.449l-3.616-1.205A2.744 2.744 0 0 1 10.743 7H11Z\",\n fill: \"#777E91\"\n })));\n};\nexport default SvgLine;","import CoinLine from \"../../public/custom-icons/icons-2/icons/Coin/Line.svg\";\n\nconst businessSvg = {\n CoinLine,\n};\n\nexport default businessSvg;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"spanIconContainerNormal\":\"ActivityIcon_spanIconContainerNormal__PUPgP\",\"spanIconContainerSmall\":\"ActivityIcon_spanIconContainerSmall__q8cqZ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"button\":\"Detail_ModalMap_button__d3amJ\",\"mapContainer\":\"Detail_ModalMap_mapContainer__1vf_A\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"containerModal\":\"Detail_PhotoGallery_containerModal__ARf71\",\"container\":\"Detail_PhotoGallery_container__lqs1k\",\"carousel\":\"Detail_PhotoGallery_carousel__Joo5V\",\"rowImageContainer\":\"Detail_PhotoGallery_rowImageContainer__Z5O58\",\"slideContainer\":\"Detail_PhotoGallery_slideContainer__KjfOn\",\"slider\":\"Detail_PhotoGallery_slider__KF4de\",\"rowImage\":\"Detail_PhotoGallery_rowImage__krv75\",\"imageGallery\":\"Detail_PhotoGallery_imageGallery___fcRY\",\"image\":\"Detail_PhotoGallery_image__vdycn\",\"buttonModal\":\"Detail_PhotoGallery_buttonModal__iGXyH\",\"buttonGallery\":\"Detail_PhotoGallery_buttonGallery__LK_k8\",\"buttonArrow\":\"Detail_PhotoGallery_buttonArrow__ev_wY\",\"button\":\"Detail_PhotoGallery_button__Zq8S_\",\"text\":\"Detail_PhotoGallery_text___nyT5\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"travelSectionBgColor\":\"Detail_TravelExperiencesStep_travelSectionBgColor__2ccO4\",\"numberStep\":\"Detail_TravelExperiencesStep_numberStep__XOBsC\",\"mapContainer\":\"Detail_TravelExperiencesStep_mapContainer___uTYV\",\"divCollst\":\"Detail_TravelExperiencesStep_divCollst__cQJz4\",\"divComtainer\":\"Detail_TravelExperiencesStep_divComtainer__sahhu\",\"divColCards\":\"Detail_TravelExperiencesStep_divColCards__Bww56\",\"divColMap\":\"Detail_TravelExperiencesStep_divColMap__9tzAR\",\"customSwitch\":\"Detail_TravelExperiencesStep_customSwitch__KjlBk\",\"cardSecondaryTextBold\":\"Detail_TravelExperiencesStep_cardSecondaryTextBold__YikZf\",\"cardSecondaryText\":\"Detail_TravelExperiencesStep_cardSecondaryText__bLeK_\",\"gradient\":\"Detail_TravelExperiencesStep_gradient__t5P59\",\"buttonMainActionRotate\":\"Detail_TravelExperiencesStep_buttonMainActionRotate__PGVF_\",\"buttonMainAction\":\"Detail_TravelExperiencesStep_buttonMainAction__853E_\",\"info\":\"Detail_TravelExperiencesStep_info__Y9uS4\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"cardBorderQuality\":\"Detail_TravelExperiencesStepCard_cardBorderQuality__WDeqQ\",\"cardBorderPremium\":\"Detail_TravelExperiencesStepCard_cardBorderPremium__LDyEu\",\"cardStarQIcon\":\"Detail_TravelExperiencesStepCard_cardStarQIcon__iYG6l\",\"cardDiamondIcon\":\"Detail_TravelExperiencesStepCard_cardDiamondIcon__llkxm\",\"starText\":\"Detail_TravelExperiencesStepCard_starText__zo_Vt\",\"cardClockIcon\":\"Detail_TravelExperiencesStepCard_cardClockIcon__AR68S\",\"cardTitle\":\"Detail_TravelExperiencesStepCard_cardTitle__WL00K\",\"cardSecondaryText\":\"Detail_TravelExperiencesStepCard_cardSecondaryText__VOAa3\",\"activityText\":\"Detail_TravelExperiencesStepCard_activityText__RX1UW\",\"spanMoreInfo\":\"Detail_TravelExperiencesStepCard_spanMoreInfo__yPtuA\",\"spanIconContainer\":\"Detail_TravelExperiencesStepCard_spanIconContainer__lGWt7\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"title\":\"Detail_WhyChoosePlay_title__jqTLr\",\"description\":\"Detail_WhyChoosePlay_description__D0CxR\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"customContainer\":\"DetailAccomodations_customContainer__b1Cdu\",\"accomodationContainer\":\"DetailAccomodations_accomodationContainer__AEaJr\",\"info\":\"DetailAccomodations_info__wr8Ji\",\"customSwitch\":\"DetailAccomodations_customSwitch__R7Yjx\",\"cardSecondaryTextBold\":\"DetailAccomodations_cardSecondaryTextBold__OJH5b\",\"cardSecondaryText\":\"DetailAccomodations_cardSecondaryText__TQJO0\",\"cityButton\":\"DetailAccomodations_cityButton__KuIwH\",\"cityButtonSelected\":\"DetailAccomodations_cityButtonSelected__v01a5\",\"carousel\":\"DetailAccomodations_carousel__1wqPO\",\"titleAccodomodations\":\"DetailAccomodations_titleAccodomodations__rkvEw\",\"subtitleAccodomodations\":\"DetailAccomodations_subtitleAccodomodations__WJIKA\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"customContainer\":\"DetailBooking_customContainer__2qFK5\",\"containerSpacer\":\"DetailBooking_containerSpacer__imQCG\",\"addToCartContainer\":\"DetailBooking_addToCartContainer__d2rwY\",\"isStickyBottom\":\"DetailBooking_isStickyBottom__fR1ef\",\"isSticky\":\"DetailBooking_isSticky__GMwrR\",\"smoothScroll\":\"DetailBooking_smoothScroll__CxLXC\",\"smoothScrollBottom\":\"DetailBooking_smoothScrollBottom__V1cAY\",\"addToCartButton\":\"DetailBooking_addToCartButton__NsrYk\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"accordion\":\"AccordionItemActivity_accordion___9_qH\",\"accordionItem\":\"AccordionItemActivity_accordionItem__rslHa\",\"accordionItemHeader\":\"AccordionItemActivity_accordionItemHeader__X8leU\",\"accordionItemHeaderIcon\":\"AccordionItemActivity_accordionItemHeaderIcon__VKYF_\",\"accordionItemHeaderIconOpen\":\"AccordionItemActivity_accordionItemHeaderIconOpen__X5AJq\",\"accordionItemHeaderOpen\":\"AccordionItemActivity_accordionItemHeaderOpen__mNcDo\",\"accordionItemHeaderOpenDivider\":\"AccordionItemActivity_accordionItemHeaderOpenDivider__rt_1b\",\"accordionItemContent\":\"AccordionItemActivity_accordionItemContent__UMlbB\",\"accordionItemOpen\":\"AccordionItemActivity_accordionItemOpen__xmGwR\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"ActivityIconBody_container__QW0wG\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"buttonContainer\":\"ChooseExperienceSectionDetail_buttonContainer__6yn3n\",\"buttonDefaultPremium\":\"ChooseExperienceSectionDetail_buttonDefaultPremium__MDsa0\",\"buttonDefaultQuality\":\"ChooseExperienceSectionDetail_buttonDefaultQuality__pUQEw\",\"buttonActivePremium\":\"ChooseExperienceSectionDetail_buttonActivePremium__3WvGa\",\"buttonActiveQuality\":\"ChooseExperienceSectionDetail_buttonActiveQuality__jEuGh\",\"iconPremium\":\"ChooseExperienceSectionDetail_iconPremium__bRJy5\",\"iconQuality\":\"ChooseExperienceSectionDetail_iconQuality__Dhxzu\",\"differencePricePremium\":\"ChooseExperienceSectionDetail_differencePricePremium__tFVg_\",\"differencePriceQuality\":\"ChooseExperienceSectionDetail_differencePriceQuality__0bxa3\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"modalContainer\":\"InfoModalPremium_modalContainer__r_a_6\",\"modalContainerLeft\":\"InfoModalPremium_modalContainerLeft__cS_za\",\"modalContainerLeftTitle\":\"InfoModalPremium_modalContainerLeftTitle__arEcD\",\"modalContainerLeftImage\":\"InfoModalPremium_modalContainerLeftImage__Gd97I\",\"modalContainerLeftFeature\":\"InfoModalPremium_modalContainerLeftFeature__2Pkig\",\"modalContainerLeftFeatureText\":\"InfoModalPremium_modalContainerLeftFeatureText__DTW_D\",\"modalContainerRight\":\"InfoModalPremium_modalContainerRight__44zgu\",\"modalContainerRightTitle\":\"InfoModalPremium_modalContainerRightTitle__5SkVo\",\"modalContainerRightText\":\"InfoModalPremium_modalContainerRightText__snCS6\",\"modalContainerRightUnderelineText\":\"InfoModalPremium_modalContainerRightUnderelineText__DUQ1N\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"PackageConfigurationSectionDetail_container__5Go_h\",\"popoverContainer\":\"PackageConfigurationSectionDetail_popoverContainer__0_r_Z\",\"popoverContainerArrow\":\"PackageConfigurationSectionDetail_popoverContainerArrow__4Md_S\",\"popoverContainerText\":\"PackageConfigurationSectionDetail_popoverContainerText__IItlY\",\"packagePriceTitle\":\"PackageConfigurationSectionDetail_packagePriceTitle__bZJhU\",\"packagePricePrice\":\"PackageConfigurationSectionDetail_packagePricePrice__MqJMO\",\"totalRow\":\"PackageConfigurationSectionDetail_totalRow__HrusU\",\"total\":\"PackageConfigurationSectionDetail_total__NVzYw\",\"eur\":\"PackageConfigurationSectionDetail_eur__eIqKo\",\"TotalPrice\":\"PackageConfigurationSectionDetail_TotalPrice__OcHr_\",\"packagePriceRow\":\"PackageConfigurationSectionDetail_packagePriceRow__Wu9vh\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"Sidebar_container___c50S\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"TravelExperienceSectionDetail_container__8R2N8\",\"containerPackageSection\":\"TravelExperienceSectionDetail_containerPackageSection__RjNFn\",\"package\":\"TravelExperienceSectionDetail_package__h22Wr\",\"packageTitle\":\"TravelExperienceSectionDetail_packageTitle__DQZPM\",\"packageDescription\":\"TravelExperienceSectionDetail_packageDescription__3KE4z\",\"packageQuality\":\"TravelExperienceSectionDetail_packageQuality__pyUHI\",\"packagePremium\":\"TravelExperienceSectionDetail_packagePremium__zMwtr\",\"packageList\":\"TravelExperienceSectionDetail_packageList__gg__i\",\"packageListText\":\"TravelExperienceSectionDetail_packageListText__TdhZP\",\"packageListIconQuality\":\"TravelExperienceSectionDetail_packageListIconQuality__Mwnxa\",\"packageListIconPremium\":\"TravelExperienceSectionDetail_packageListIconPremium__mRqht\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"textContainer\":\"DetailDescription_textContainer__Q5CCv\",\"imageContainer\":\"DetailDescription_imageContainer__XCfk2\",\"imageDescription\":\"DetailDescription_imageDescription__niv2d\",\"descriptionDivider\":\"DetailDescription_descriptionDivider__GiNvr\",\"includedActivitiesTitle\":\"DetailDescription_includedActivitiesTitle___QCo0\",\"containerColSize\":\"DetailDescription_containerColSize__Li7r5\",\"colSize\":\"DetailDescription_colSize__IOwvL\",\"spanIconContainer\":\"DetailDescription_spanIconContainer__N01hp\",\"titleAndCarouselContainer\":\"DetailDescription_titleAndCarouselContainer__4cEPn\",\"carouselTitle\":\"DetailDescription_carouselTitle___BD1z\",\"carouselSubtitle\":\"DetailDescription_carouselSubtitle__Kyti2\",\"cardImageContainer\":\"DetailDescription_cardImageContainer__NP1lu\",\"cardImageProfileContainer\":\"DetailDescription_cardImageProfileContainer__bX1G5\",\"imageProfile\":\"DetailDescription_imageProfile__TTFSL\",\"cardStarIcon\":\"DetailDescription_cardStarIcon__HAKfy\",\"starText\":\"DetailDescription_starText___nKN3\",\"cardDataContainer\":\"DetailDescription_cardDataContainer__zhPzu\",\"cardName\":\"DetailDescription_cardName__qBlrp\",\"cardNameItalianExpert\":\"DetailDescription_cardNameItalianExpert__n0rZd\",\"cardItalianExpert\":\"DetailDescription_cardItalianExpert__b4IM1\",\"container\":\"DetailDescription_container__PhPk7\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"sectionBorderPremium\":\"DetailFixedBar_sectionBorderPremium__lJuFV\",\"sectionBorderQuality\":\"DetailFixedBar_sectionBorderQuality__dwCnr\",\"cardStarIcon\":\"DetailFixedBar_cardStarIcon__rDknN\",\"cardSecondaryText\":\"DetailFixedBar_cardSecondaryText__iEKVn\",\"starText\":\"DetailFixedBar_starText__aBFbr\",\"cardClockIcon\":\"DetailFixedBar_cardClockIcon__OJXG9\",\"flagContainer\":\"DetailFixedBar_flagContainer__8MJb8\",\"addToCartBoxPrice\":\"DetailFixedBar_addToCartBoxPrice__gVU6e\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"headBgColor\":\"DetailHead_headBgColor__bwxiB\",\"headBgImageContainer\":\"DetailHead_headBgImageContainer__UJS4X\",\"startingPriceStyle\":\"DetailHead_startingPriceStyle__zujgr\",\"customControls\":\"DetailHead_customControls__X1y_L\",\"hideControls\":\"DetailHead_hideControls__gMcQ_\",\"controlButton\":\"DetailHead_controlButton__VqEG_\",\"radialContainer\":\"DetailHead_radialContainer__KspZA\",\"imageFit\":\"DetailHead_imageFit__8kEz3\",\"headPaddingContainer\":\"DetailHead_headPaddingContainer__AUdNZ\",\"headLowerContainerMobile\":\"DetailHead_headLowerContainerMobile__IPoGj\",\"headTitleContainer\":\"DetailHead_headTitleContainer__V8u2v\",\"promoTag\":\"DetailHead_promoTag__Xl22s\",\"playButton\":\"DetailHead_playButton__Cdeo2\",\"headTitle\":\"DetailHead_headTitle__QqlOy\",\"headSubtitle\":\"DetailHead_headSubtitle__Z8bAI\",\"starContainer\":\"DetailHead_starContainer__aRucy\",\"starText\":\"DetailHead_starText__PFpwX\",\"reviewsText\":\"DetailHead_reviewsText__GTpgW\",\"cardSecondaryText\":\"DetailHead_cardSecondaryText__cRvD9\",\"headLowerContainer\":\"DetailHead_headLowerContainer__z8dJ4\",\"headLowerContentContainer\":\"DetailHead_headLowerContentContainer__OQyqp\",\"headRowCardContainer\":\"DetailHead_headRowCardContainer__zS6So\",\"headCardContainer\":\"DetailHead_headCardContainer__B64n_\",\"headIcon\":\"DetailHead_headIcon__RVhuj\",\"headIconSecond\":\"DetailHead_headIconSecond__N9DUP\",\"priceAndLevelContainer\":\"DetailHead_priceAndLevelContainer__W_sfD\",\"cardPriceContainer\":\"DetailHead_cardPriceContainer__ZKka_\",\"cardSecondaryTextBold\":\"DetailHead_cardSecondaryTextBold__spwI5\",\"customSwitch\":\"DetailHead_customSwitch__rVOJH\",\"headCentralContainer\":\"DetailHead_headCentralContainer__9pS42\",\"headInnerContentContainer\":\"DetailHead_headInnerContentContainer__vKgs2\",\"headButtonContainer\":\"DetailHead_headButtonContainer__qkK5M\",\"headCardBorder\":\"DetailHead_headCardBorder__so4eV\",\"headContentContainer\":\"DetailHead_headContentContainer__ipuIQ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"DetailHotelCard_container__X8j9z\",\"roomsButton\":\"DetailHotelCard_roomsButton__3G2NZ\",\"overlay\":\"DetailHotelCard_overlay__WUBWO\",\"tagPremium\":\"DetailHotelCard_tagPremium__yLwaN\",\"tagQuality\":\"DetailHotelCard_tagQuality__dnvt1\",\"cardImageContainer\":\"DetailHotelCard_cardImageContainer__bUSTw\",\"imageDescription\":\"DetailHotelCard_imageDescription__UNW6t\",\"cardDataContainer\":\"DetailHotelCard_cardDataContainer__mgpc6\",\"cardName\":\"DetailHotelCard_cardName__W5JAn\",\"cardDataContainer2\":\"DetailHotelCard_cardDataContainer2__q7ih9\",\"starContainer\":\"DetailHotelCard_starContainer__aYwdj\",\"descriptionDivider\":\"DetailHotelCard_descriptionDivider__QTvV5\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"modalBackground\":\"DetailHotelGallery_modalBackground__6_TAM\",\"galleryContainer\":\"DetailHotelGallery_galleryContainer__SS5e4\",\"interactionSvgSpan\":\"DetailHotelGallery_interactionSvgSpan__EudLl\",\"title\":\"DetailHotelGallery_title__sTtV0\",\"multilineEllipsis\":\"DetailHotelGallery_multilineEllipsis__S9Kb4\",\"subtitle\":\"DetailHotelGallery_subtitle__wHNew\",\"modal\":\"DetailHotelGallery_modal__4Xhnt\",\"interactionSvgSpanDisable\":\"DetailHotelGallery_interactionSvgSpanDisable__ULM2H\",\"starContainer\":\"DetailHotelGallery_starContainer__XbQyb\",\"pointerContainer\":\"DetailHotelGallery_pointerContainer__B9KW2\",\"spanMoreInfo\":\"DetailHotelGallery_spanMoreInfo__njNQ3\",\"cardSecondaryText\":\"DetailHotelGallery_cardSecondaryText__8fkzl\",\"galleryImage\":\"DetailHotelGallery_galleryImage__0L0MS\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"DetailRecap_container__6oq1z\",\"bgMobile\":\"DetailRecap_bgMobile__Quxgm\",\"isSticky\":\"DetailRecap_isSticky__J6XjK\",\"smoothScroll\":\"DetailRecap_smoothScroll__oUpdf\",\"customContainer\":\"DetailRecap_customContainer___kEvo\",\"customContainerInner\":\"DetailRecap_customContainerInner__7WLDr\",\"recapDivider\":\"DetailRecap_recapDivider__PwvN_\",\"backToSearchButton\":\"DetailRecap_backToSearchButton__gY0nn\",\"arrowRightSvg\":\"DetailRecap_arrowRightSvg__dKwqZ\",\"spanArrowText\":\"DetailRecap_spanArrowText___NZa9\",\"arrowRightSvgFinal\":\"DetailRecap_arrowRightSvgFinal__NYu4Y\",\"cardStarIcon\":\"DetailRecap_cardStarIcon__rMrP0\",\"starText\":\"DetailRecap_starText__pjiMe\",\"cardClockIcon\":\"DetailRecap_cardClockIcon__9ydpL\",\"cardSecondaryText\":\"DetailRecap_cardSecondaryText___36gq\",\"flagContainer\":\"DetailRecap_flagContainer__oapco\",\"dollarSvgContainer\":\"DetailRecap_dollarSvgContainer__MQEj_\",\"interactionSvgContainer\":\"DetailRecap_interactionSvgContainer__fbJOs\",\"actionsContainer\":\"DetailRecap_actionsContainer__OcDkO\",\"interactionSvgSpan\":\"DetailRecap_interactionSvgSpan__Rfxwm\",\"interactionSvgSpanHeartActive\":\"DetailRecap_interactionSvgSpanHeartActive__F1TMv\",\"interactionSvgSpanHeart\":\"DetailRecap_interactionSvgSpanHeart__cLpHc\",\"navContainer\":\"DetailRecap_navContainer__nIMU9\",\"spanNav\":\"DetailRecap_spanNav__a1O68\",\"spanNavSelected\":\"DetailRecap_spanNavSelected__eIDEw\",\"spanNavFaq\":\"DetailRecap_spanNavFaq__wdF80\",\"reserveButton\":\"DetailRecap_reserveButton__biTm_\",\"reserveButtonDisabled\":\"DetailRecap_reserveButtonDisabled__57IM0\",\"priceSectionPrice\":\"DetailRecap_priceSectionPrice___7mPF\",\"priceSectionPriceLegend\":\"DetailRecap_priceSectionPriceLegend__9E_Xf\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"cardBorderQuality\":\"Search_Card_cardBorderQuality__MvtWB\",\"cardBorderPremium\":\"Search_Card_cardBorderPremium__Q7aAY\",\"contentPriceBox\":\"Search_Card_contentPriceBox__ilXd_\",\"startingPriceStyle\":\"Search_Card_startingPriceStyle__hdNVo\",\"imageContainer\":\"Search_Card_imageContainer__mHsqi\",\"buttonLike\":\"Search_Card_buttonLike__bBRRG\",\"buttonLikePressed\":\"Search_Card_buttonLikePressed__Yjdta\",\"cardStarIcon\":\"Search_Card_cardStarIcon__VOBXR\",\"starText\":\"Search_Card_starText__lV_dY\",\"cardTitle\":\"Search_Card_cardTitle__vV5h4\",\"cardSecondaryText\":\"Search_Card_cardSecondaryText__h9FEj\",\"cardActivityTitle\":\"Search_Card_cardActivityTitle__9_F0y\",\"cardSecondaryTextBold\":\"Search_Card_cardSecondaryTextBold__nqGUy\",\"spanMoreInfo\":\"Search_Card_spanMoreInfo__WSHKW\",\"spanIconContainer\":\"Search_Card_spanIconContainer__cW5Oq\",\"cardLabelQuality\":\"Search_Card_cardLabelQuality__3e_kg\",\"cardLabelPremium\":\"Search_Card_cardLabelPremium__Hmf76\",\"customSwitch\":\"Search_Card_customSwitch__3OvC2\",\"cardPriceContainer\":\"Search_Card_cardPriceContainer__qBlVV\",\"watchTourButton\":\"Search_Card_watchTourButton__EXfXJ\",\"imageCol\":\"Search_Card_imageCol__PD5Wa\"};"],"names":["window","__NEXT_P","push","__webpack_require__","__webpack_exports__","borderColor","src","alt","className","isSmall","param","imageError","setImageError","useState","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","jsx","span","styles","style","position","border","concat","Image","width","height","objectFit","onError","_path","_path2","geotag_path","geotag_path2","keys_path","keys_path2","english_flag_path","english_flag_path2","_path3","_path4","spanish_flag_path","spanish_flag_path2","french_flag_path","french_flag_path2","french_flag_path3","italian_flag_path","italian_flag_path2","italian_flag_path3","_g","_defs","adapterItemGAnalytics","item","variant","item_id","tourId","item_name","tourTitle","item_brand","item_category","tourType","item_variant","price","quantity","tour","itemsAdapted","productQuality","quality","productPremium","premium","currency","value","items","useRelatedTours","id","isPremium","data","tours","useQuery","queryKey","queryFn","getRelatedTours","hooks_useSticky","initialOffset","stickyRef","useRef","sticky","setSticky","offset","setOffset","useEffect","current","offsetTop","handleScroll","condition","scrollY","addEventListener","removeEventListener","detail_InterestedIn","content","jsx_runtime","MDBContainer","fluid","backgroundColor","SectionCarouselLayout","visibleSlides","sectionTitle","interestedInTitle","sectionSubTitle","interestedInSubTitle","breakpointsCarousel","slidesPerView","spaceBetween","isCarouselContained","map","CardTour","_id","tags_TagsPackageType","div","jsxs","stylesCard","socialAndBrandSvg","SketchLine","userInterfaceSvg","StarLine","color","textTransform","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","geotag_extends","keys_extends","english_flag_extends","spanish_flag_extends","french_flag_extends","italian_flag_extends","pointer_extends","detailPackageCustom","Ticket","props","react","createElement","fill","xmlns","d","GeoTag","Keys","English","Spanish","French","Pointer","clipPath","stroke","strokeWidth","strokeLinecap","Italian","HeadBox","packageDetail","days","isMobile","setIsPremium","typePackage","showAccomodations","packageDetailCustomSvg","isMD","useIsMD","isLG","useIsLG","isXL","useIsXL","paddingTop","useMemo","MDBRow","center","MDBCol","size","lg","md","h4","p","destinations","el","city","fontFamily","transformPrice","Number","startingPrice","br","ETypePackage","MDBSwitch","checked","onChange","url","URL","location","href","searchParams","set","history","replaceState","TagsPackageType","defaultProps","detail_PackageDetailHead","videoEl","isPromo","isVideoAvailable","videoPlay","setVideoPlay","error","setError","Play","mediaControlSvg","checkedRating","checkRating","rating","paddingBottom","isPlaying","setIsPlaying","isMuted","setIsMuted","isFullscreen","setIsFullscreen","showControls","setShowControls","shouldRenderImage","hideControlsTimeout","handleVideoPlay","handleVideoPause","handleVolumeChange","muted","handleFullscreenChange","document","fullscreenElement","video","requestFullscreen","onMouseMove","onMouseLeave","display","top","zIndex","borderRadius","transform","transition","marginBottom","controls","autoPlay","title","ref","onEnded","onPlay","clearTimeout","setTimeout","onPause","coverVideo","button","type","onClick","Icon","icon","volumeMuteIcon","volumeUpIcon","pause","play","pauseIcon","playIcon","exitFullscreen","compressIcon","expandIcon","coverImage","MDBBtn","h1","Fragment","starsArray","adventures_box","discover_box","expert_box","WhyChoosePlay","forwardRef","_","dispatch","useStore","state","dispatchPackage","isOnScreen","useOnScreen","randomUid","image","discoverPic","description","expertPic","adventuresPic","whyChoosePlayTitle","titleColumnSize","alignment","classNameContainer","payload","EDetailSection","SectionTitle","xl","detail_PackageDetailNavbarItem","thisSection","handleNavigation","currentSection","packageState","spanClassName","detail_PackageDetailNavbar","isRequestAQuote","router","useRouter","rooms","checkoutState","orderData","totalAmount","isDefault","setIsDefault","deepEqual","useCallback","obj1","obj2","keys1","keys","keys2","includes","arraysAreEqual","arr1","arr2","defaultRoomValue","ERoomType","adults","children","newborns","isSM","useIsSM","clickConfirmDate","PackageDetailNavbarItem","detail_PackageDetailRecap","userDetail","FlagLine","ClockLine","contactsSvg","CoinLine","businessSvg","ShareSquare","ArrowLeftSimpleLine","ArrowRightSimpleLine","StarFilled","HeartLine","shopDestination","useSticky","authType","userState","mutate","toggle","useToggleFavourite","toggleWishlist","dispatchCommon","pathname","query","destination","shallow","navigator","clipboard","writeText","ETypeToastMessage","message","favouriteTours","e","preventDefault","stopPropagation","PackageDetailNavbar","detail_DetailFixedBarMobile","isButtonDisabled","toFixed","Btn","btnType","EBtnType","disabled","modal_ModalCartContainer","modalSize","ModalSize","FULL","show","setShow","isBrowser","setIsBrowser","useDisableBodyScroll","MDBModal","tabIndex","staticBackdrop","MDBModalDialog","centered","undefined","MDBModalContent","MDBModalBody","info_InfoModalDouble","getBody","text","list","ul","listItem","li","bodyContents","listElements","InfoModalContainer","info_InfoModalVideo","info_InfoModalPremium","onBuy","pricePremium","priceQuality","Star","generalSvg","CatPremiumResized","otherSvg","fullWith","DetailBookingSidebar_DatePickerSectionDetail","toggleInfoModal","daysExcluded","discountedDates","startDate","slots","setStartDate","setStartDateView","click","setClick","startDateView","selectedExclusions","toExcludePremium","toExcludeQuality","slotsLastDate","moment","slot","endDate","toDate","h3","stylesCommon","RangeDatePicker","excludeDates","rangeLength","selectedDate","lastDate","setSelectedDate","InfoType","DetailBookingSidebar_ChooseExperienceSectionDetail","differencePrice","showPrice","setShowPrice","onMouseEnter","DetailBookingSidebar_DiscountSectionDetail","dispatchCheckout","setErrorMsg","originalAmount","getOriginalAmount","getTourId","userId","checkCoupon","useMutation","verifyCoupon","onSettled","onSuccess","coupon","discountedAmount","err","ButtonCta","validator","trim","code","placeholder","DetailBookingSidebar_PackageConfigurationSectionDetail","formatPattern","isPets","pets","firstDate","format","split","calculateAdults","reduce","previousValue","currentValue","calculateToddlers","calculateChildrens","languageSelected","clickLanguage","valueCoupon","at","getEndDate","add","DiscountSectionDetail","common_ConvertCurrentCurrency","a","rel","detail_PackageDetailAddToCartBoxInfo","onClickInfo","ConvertCurrentCurrency","cursor","InfoCircleLine","DetailBookingSidebar_FinalPriceSectionDetail","PackageDetailAddToCartBoxInfo","DetailBookingSidebar_ButtonBuySectionDetail","errorGuest","clickDate","setShowModalPremium","ShoppingBag","shoppingSvg","stylesAddToCart","fontSize","DetailBookingSidebar_DetailBookingConfigurator","slotsPremium","slotsQuality","languages","infoContent","setInfoContent","setClickDate","JSON","parse","eccessoList","setEccessoList","setPets","discountAmount","refetch","getExcludedDaysSession","info","dateFormat","getFirstUsefulDate","excludedDates","date","currentDate","found","find","element","sortedExcludedDates","sort","b","diff","excludeDate","currentElement","index","arr","isSame","isAfter","overrideDate","override","overridePremium","overrideQuality","discounted","acc","discount","day","selectedSlot","isBetween","roomStore","overrideDateFind","selectedOverride","roomsOverride","setErrorGuest","showModalPremium","selectedSlotPremium","setErrorMessage","priceTotal","useCalculatePrice","toDateString","isPremiumFlag","queryData","amount","toISOString","room","option","ETourOption","language","checkoutData","stringify","modalsInfo","InfoModalGeneral","priceContent","dateContent","nightsContent","languageContent","extraNightsContent","cancellationPolicyContent","InfoModalDouble","qualityPremiumContent","InfoModalVideo","InfoModalPremium","priceQualityUse","pricePremiumUse","res","roomCurrent","grossPrice","console","log","DatePickerSectionDetail","RoomTravellersSectionDetail","calculateSelectedSlot","idxSlot","ChooseExperienceSectionDetail","PackageConfigurationSectionDetail","FinalPriceSectionDetail","ButtonBuySectionDetail","Link","textDecoration","DetailBooking_PackageDetailBookingMobile","packagePremium","packageQuality","displayBottomMenu","setDisplayBottomMenu","DetailFixedBarMobile","ModalCartContainer","RequestAQuoteForm","activities","requestAQuoteActivities","fromSmallDevices","DetailBookingConfigurator","DetailBookingSidebar_Accordion","extraTitle","isOpen","onItemClick","showDivider","ArrowUpSimpleLine","DetailBookingSidebar_AccordionItemActivity","classNameHeader","DetailBookingSidebar_ActivityIconBody","whatIsIncluded","whatIsIncludedDelta","Accordion","AccordionItem","idx","AccordionItemActivity","name","ActivityIcon","dangerouslySetInnerHTML","__html","QuillDeltaToHtmlConverter","ops","convert","DetailBookingSidebar_Sidebar","ActivityIconBody","detail_PackageDetailDescriptionCard","cardData","coverError","setCoverError","avatarError","setAvatarError","avatar","detail_PackageDetailDescriptionCarousel","italiansExpert","swiperClass","setSwiperClass","cards","PackageDetailDescriptionCard","breackPointCarousel","ButtonBack","ButtonNext","Carousel","breakpoints","detail_PackageDetailDescription","uniq","track","Set","filter","has","results","itineraries","itinerary","flat","converter","whatWillYouSeeDelta","html","h2","whatWillYouSee","whatWillYouSeeImage","xxl","useShouldRenderArrayFC","PackageDetailDescriptionCarousel","DetailBookingSidebar_TravelExperienceSectionDetail","travelExperiencesTitle","subTitle","travelExperiencesSubTitle","PackageDetailBooking","_ref_current","_ref_current_offsetTop","setPrice","PackageDetailDescription","TravelExperienceSectionDetail","PackageDetailBookingMobile","Sidebar","detail_ModalMap","CloseLine","render","setRender","tag","floating","iframe","allow","overflowY","hooks_useForwardRef","initialValue","targetRef","detail_TravelExperiencesStepCard","CalendarLine","LocationLine","moreInfo","setMoreInfo","descriptionDelta","MDBCard","distance","time","hr","ArrowDownSimpleLine","TravelExperiencesStep","travelExperiencesStepSection","useForwardRef","visibleCards","setVisibleCards","showModalMap","setShowModalMap","shouldBeExpandable","shouldAddTransparency","currentIndex","isAllCardsVisible","travelExperiencesTitleGreen","showInfoModal","setShowInfoModal","divColCards","clientHeight","setClientHeight","checkAtlasMap","process","atlasMap","baseUrlAtlasMap","env","NEXT_PUBLIC_ATLASMAP_BASE_URL","flag","resizeObserver","ResizeObserver","observe","disconnect","role","TravelExperiencesStepCard","TagManager","laodMore","scrollTo","behavior","ModalMap","detail_PackageDetailHotelCard","packageAccommodation","hotelGalleryHandler","getStars","Array","from","stars","detail_PackageDetailHotelGallery","currentHotel","readMore","setReadMore","iconImageError","setIconImageError","address","centerInsufficientSlides","classNameCarousel","gallery","prevImageErrors","OvernightAccomodations_OvernightCarousel","resetCarousel","setResetCarousel","OvernightAccommodations","nightDestinations","overNightRef","cityAccommodations","nightDestination","showHotel","premiumHotelsPresent","qualityHotelsPresent","showModal","setShowModal","selectedCity","setSelectedCity","selectedHotel","setSelectedHotel","filterAccommodations","hotels","selectedIndex","handleTabClick","getVisibleCards","PackageDetailHotelCard","accomodationsTitle","accomodationSubTitle","classNameTitle","classNameSubTitle","OvernightCarousel","PackageDetailHotelGallery","PhotoGalleryModal","dynamic","then","ssr","detail_PhotoGallery","photoUrls","ImageLine","defaultImage","indexPhotoClicked","setIndexPhotoClicked","photoLinks","slice","photoGalleryTitle","photoGallerySubTitle","openModal","prevState","onClose","detail_PackageDetailBody","sortedItineraries","initPremium","setIsPromo","accommodationsSection","generalRef","hiwRef","videoReviews","useVideoReviewData","homeData","useHomeData","relatedTours","useRelatedToursData","setTipePackage","areHotelsAvailable","setAreHotelsAvailable","getPackagePremiumQuality","onlyQuality","onlyPremium","getCurrentPackage","first","second","currentSectionOffsetTop","section","pixelToRemove","roomParam","handleHashChange","hashToSearch","asPath","event","newURL","reviewsContainer","tourReviewsEl","getElementById","PackageDetailHead","requestAQuote","endsWith","PackageDetailRecap","Brochures","PhotoGallery","reviews","TourReview","reviewContents","TikTokSection","wordingsDelta","staticMedia","InterestedIn","KeepInTouch","getOpenGraphData","metadata","metaDescription","urlCanonical","images","altHeadImage","altWhatWillYouSeeImage","_slug_","slug","getPackageDetailByTitle","refetchInterval","enabled","prop","adapterTourViewItemGAnalytics","viewItem","Layout","metaTags","seoKeywords","keywords","PackageDetailBody","business","fillRule","clipRule","module","exports"],"sourceRoot":""}